• 회원가입
  • 로그인
  • 구글아이디로 로그인

[media] HTML - <audio> 태그 ★ - 음성파일재생 (= audio태그 = 오디오태그)

목차

  1. <audio> 예제 - 음성 파일 재생
  2. <audio> 정의
  3. <audio> 속성
  4. <audio> 예제 - m4a 재생
  5. <audio> 예제 - 크롬 미니 원형 플레이어
  6. <audio> 예제 - 2개 오디오 재생 토글 버튼
  7. <audio> 예제 - 1개 오디오 재생 토글 버튼

 

<audio> 예제 - 음성 파일 재생


<audio controls>
  <source src="voice.mp3" type="audio/mpeg">
  <source src="voice.ogg" type="audio/ogg">
  <source src="voice.wav" type="audio/wav">
  댁 브라우저가 후져서, audio 태그 지원 안 함. ㅡㅡ;
</audio>

 

<audio> 정의

 

음성 콘텐츠 재생. (현재, MP3. OGG, WAV 형식만 지원)

 


 

1. 

  • <audio> 태그 내에 <source> 태그를 사용해, mp3 ogg wav 음성 파일을 불러 옴.
  • <audio> 태그 사이의 텍스트 문자는 <audio> 태그 지원 않는 브라우저에서만 보여짐. (보통, audio 태그 지원 여부 및 해당 오디오 다운 링크 표시)


2. 파일 형식별 브라우저 지원 현황.  

  • MP3 : IE9+, 최신 주요 브라우저 모두 지원 (※ IE8 이하 지원 X)
  • OGG : 크롬, 파이어폭스,오페라 지원. (※ IE, Safari : 지원 X)
  • WAV : 주요 최신 브라우저 모두 지원. (※ IE : 지원 X)

3. 파일 형식별 MIME 타입 
  • MP3 : audio/mpeg   ※ audio/mp3 아님에 주의
  • OGG : audio/ogg
  • WAV : audio/wav

4.  
  • JS로 오디오플레이어 만들지 않는 이상, 오디오 스타일 지정 불가
  • HTML5에서 새로 도입
  • 주요 브라우저 기본 CSS : none

 

5. 크롬 자동 재생 정책

https://developer.chrome.com/blog/autoplay/

 


PS.

  • MIME (마임: Multipurpose Internet Mail Extensions) - 아스키 데이터가 아닌 메시지를 인터넷 통해 전송 가능한 프로토콜.
  • ASCII (아스키: American Standard Code for Information Interchange) - 정보 교환용 표준 코드.
  • 구글 검색 키워드: Web Audio API

 

 

<audio> 속성

 속성  속성값  설명  비고
 autoplay  autoplay  자동 재생  HTML5 추가
 controls  controls  재생 멈춤 등 오디오 통제 툴  HTML5 추가
 loop  loop  반복 재생  HTML5 추가
 muted  muted  소리 죽임  HTML5 추가
 preload  auto
 metadata
 none
 auto : 페이지 로딩 시, 음성 파일 전체 로딩
 metadata : 페이지 로딩 시, 메타데이터만 로딩
 none : 페이지 로딩 시, 음성 파일 로딩 안 함.
 HTML5 추가
 src  URL 주소  재생할 음성 파일 URL 주소  HTML5 추가
※ <audio> 태그는 전역속성이벤트속성 지원.
※ 메타데이터 (= 속성정보 metadata) : 실제 데이터를 효율적으로 관리하는데 필요한 직간접 데이터.

 

 

<audio> 예제 - m4a 재생

 

<audio id="audio" autoplay loop>

    <source src="https://dl.espressif.com/dl/audio/ff-16b-2c-44100hz.m4a" type="audio/mp4"/>

</audio>

 

결과보기


<audio> 예제 - 크롬 미니 원형 플레이어

 

<style>

#hz {width:30px;height:30px;overflow:hidden;border-radius:50%; border:1px solid #cccccc;box-sizing:content-box;}

#hz audio {margin-top:-12px;margin-left:-11px;display:block}

</style>


<div id="hz">

    <audio src="https://ccrma.stanford.edu/~jos/mp3/harpsi-cs.mp3" controls loop autoplay></audio>

</div>

 

비타주리 님 (220614) https://sir.kr/g5_tip/18690

 

<audio> 예제 - 2개 오디오 재생 토글 버튼

 

 

 

<script src="https://code.jquery.com/jquery-latest.min.js"></script>


<script>

function toggle_play() {

    var hz1 = document.getElementById('hz1');

    var hz2 = document.getElementById('hz2');

    

    if (hz1.paused == true) {

        hz2.pause();

        hz2.currentTime = 0;

        hz1.play();

    } else {

        hz1.pause();

        hz1.currentTime = 0;

        hz2.play();

    }

}

$(function () {

    $("#btn_sentence").on("click", function() {

        toggle_play();

    });

});

</script>

 

<audio src="https://interactive-examples.mdn.mozilla.net/media/cc0-audio/t-rex-roar.mp3" controls id="hz1"></audio>

<audio src="https://ccrma.stanford.edu/~jos/mp3/harpsi-cs.mp3" controls id="hz2"></audio>

 

<button type="button" id="btn">재생 토글</button>

 

결과보기

배르만 님 (230410) https://sir.kr/qa/496227

PS. 순수 JavaScript 방식 보기

 

<audio> 예제 - 1개 오디오 재생 토글 버튼

https://github.com/daviddarnes/play-button

 

<style>

play-button:defined audio,

play-button:not(:defined) button {

display: none;

}

</style>


<script type="module" src="https://daviddarnes.github.io/play-button/play-button.js"></script>


<play-button>

    <audio controls src="https://ccrma.stanford.edu/~jos/mp3/harpsi-cs.mp3"></audio>

    <button>Play</button>

</play-button>

 

결과보기



분류 제목
style HTML - <header> 태그 ★ - 단락머리말 (= header태그 = 헤더태그 = 헤더요소) (HT…
deprecated HTML - <nobr> 태그 - 줄바꿈안하기 (= nobr태그 = 노비알태그)
meta HTML - <basefont> 태그 - 기본글자스타일 (기본글꼴/기본색상/기본크기) (= 베이스폰트태그) … 2
table HTML - <tr> 태그 ★ - 테이블행 (= 테이블가로줄 = tr태그 = 티알태그) (HTML5수정)</…
form HTML - <form> 태그 ★★★ - 입력폼양식 (= form태그 = 폼태그/폼요소) ※ 폼데이터 입력/…
form HTML - <datalist> 태그 - 입력가능값리스트 (= datalist태그 = 데이터리스트태그)
programming HTML - <noscript> 태그 - JS 작동안될때 보여줄 내용 (= noscript태그 = 노스크립트…
list HTML - <menu> 태그 - 명령어메뉴목록 (= menu태그 = 메뉴태그)
formatting HTML - <s> 태그 - 취소선 (= 취소태그 = s태그 = 에스태그 = 스트라이크쓰루태그) (HTML5…
basic HTML - <body> 태그 ★ - 문서영역 (= 문서본문영역 = body태그/body요소 = 바디태그/바…
form HTML - <label> 태그 ★ - input태그꼬리표 (= 인풋꼬리표 = 인풋명찰=인풋이름표 = lab…
meta HTML - <base> 태그 - 상대주소기본URL과 링크기본타켓지정 (= base 태그 = 베이스태그)
formatting HTML - <del> 태그 - 텍스트삭제표시 (= del태그 = 딜태그|델태그|딜리트태그) ※ 삭제태그
frame HTML - <frameset> 태그 - 프레임그룹 (= 프레임 레이아웃 = frameset태그 = fram…
basic HTML - <!DOCTYPE> 태그 ★ - 문서타입 (= !doctype태그 = !doctype요소 = …
table HTML - <th> 태그 ★ - 테이블셀제목 (= th태그 = 티에이치태그) + th고정 (= 테이블헤드고…
font HTML - <sub> 태그 ★ - 아래첨자 (= 하단작은글씨 = sub태그 = 서브태그)
table HTML - <col> 태그 - 테이블열그룹 (= col태그 = 콜태그) (HTML5 수정)
table HTML - <table> 태그 ★ 테이블 (= 표작성 = table태그 = 테이블태그) ※ 셀병합 (= 셀…
table HTML - <td> 태그 ★ - 테이블 데이터 셀 (= 테이블셀 = td태그 = 티디태그) (HTML5수정…
15/18
목록
찾아주셔서 감사합니다. Since 2012