HTML5 강좌 14강 - HTML5 태그 - audio

 

이번 강좌에서는 오디오를 재생하는 플레이어를 만들어보겠습니다.

기존 html 에서는 embed 방식을 사용했는데요.

html5에서 기본적인 오디오 플레이어는 정말 간단합니다.

 

<audio id="player" src="media/audio_sample.ogg" controls>

</audio>

 

오디오 태그에 아이디 속성값과 오디오파일 경로를 입력해주면 됩니다.

그리고 마지막에 controls 이라는 속성을 선언해 주면 끝~

 

 

01.jpg

 

 

 

*audio 속성

(1)src : 재생할 파일 경로 지정

(2)autoplay : 페이지 로드 시 사운드를 재생할 지 여부 지정

(3)controls : 플레이어 표시

(4)loop : 반복할 재생 횟수

(5)preload : 페이지가 열릴 때 오디오의 로드 설정

-> none : 자동 로드하지 않음, auto : 자동 로드, meta : 오디오의 메타 정보만 로드

 

그리고 source 요소를 사용하여 좀 더 디테일한 플레이어 설정이 가능합니다.

 

<audio controls>

<source src="media/audio_sample.ogg" type="audio/ogg"></source>

<source src="media/audio_sample.mp3" type="audio/mpeg"></source>

<p>당신의 브라우저는 audio 요소를 지원하지 않습니다. </p>

</audio>

 

source 에서 src 속성으로 파일의 경로를 지정해주고 type 속성으로 mime 타입을 지정해 줍니다.

이렇게 설정을 하면 사용자의 브라우저에 따라 지원 가능한 여부가 더욱 확대 되겠죠.

 

그런데 한가지 유의할 점이 있습니다.

브라우저 마다 지원가능한 파일형식이 있고, 불가능한 파일형식이 있습니다.

그러니 사용자가 문서에 접근했을 때 사용자의 브라우저가 지원하지 않는 브라우저라면 

위와 같이 안내를 해줘야겠죠~

 

그리고 다음과 같이 버튼을 설정하여 사용할 수도 있습니다.

 

(1) <button onclick="document.getElementById('player').play()">재생 하기</button> 

(2) <button onclick="document.getElementById('player').pause()">일시 정지</button> 

(3) <button onclick="document.getElementById('player').volume += 0.1">볼륨 +</button> 

(4) <button onclick="document.getElementById('player').volume -= 0.1">볼륨 -</button> 

 

(1)번에서 (4)번 모두 버튼을 생성해주는 태그입니다.

(1)번 버튼은 

onclick -> 클릭을 했을 경우 

document.getElementById('player') -> 문서에서 player 라는 아이디를 가진 객체를

.play() -> 재생하라

라는 내용입니다.

(1)번에서 (4)번 모두 player 라는 아이디를 가진 객체를 컨트롤 해주는 버튼들이죠.

 


02.jpg

 

 

 

audio 태그에는 더 많은 기능이 있습니다.

그리고 그 기능들은 자바스크립트 코드로 작성하는게 더욱 깔끔합니다.

하지만 아직 자바스크립트에 대해 생소할 수도 있으니 샘플 페이지만 첨부파일에 넣겠습니다.

샘플 페이지의 코드에서 onclick 에서 지시하는 메소드를 보시고 

자바스크립트에서 선언한 function 문장으로 가서 기능을 보시면 어느정도 이해가 되실 겁니다.

 

 

(예제는 첨부파일에서 받을 수 있습니다.)

 

14.zip

번호 제목 글쓴이 날짜 조회 수
128 Web Speech API Example (HTML5 STT & TTS) file 황제낙엽 2025.04.14 731
127 모바일과 데스크톱을 포괄하는 사용자의 터치 이벤트(onPointerTap) 황제낙엽 2025.04.09 648
126 Web RTC 에 관하여 황제낙엽 2024.11.20 626
125 div와 span의 차이점 (from Bing) 황제낙엽 2023.06.16 685
124 flexbox (flexible box layout) 황제낙엽 2023.02.27 641
123 characters from ISO 8859-1 황제낙엽 2020.11.10 36946
122 HTML FRAMESET 태그 예제 황제낙엽 2020.11.06 718
121 스마트 기기에서 여러 단말기의 해상도에 대응하기 위해 사용하는 HTML viewport meta tag 황제낙엽 2020.11.06 644
120 네이버의 무료 나눔 글꼴 황제낙엽 2020.05.06 1762
119 서버의 이미지나 txt 파일을 웹브라우저에서 다운로드하기 황제낙엽 2019.05.13 867
118 When to encode space to plus (+) or %20? (application/x-www-form-urlencoded) 황제낙엽 2019.04.15 917
117 HTTP/2 소개 황제낙엽 2018.10.12 693
116 글자, 문자, 텍스트, 글꼴, 서체, 폰트와 관련한 속성들 / font-size , 크기 단위(em, px, pt, rem), 절대 단위, 상대 단위 황제낙엽 2018.04.18 842
115 Pragma와 Cache-Control 황제낙엽 2018.03.28 845
114 로드밸런싱(L4)+아파치를 운영시 etag제거로 캐시 성능 최적화 file 황제낙엽 2018.03.28 944
113 HTTP 요청 헤더 III - If-Match, If-Modified-Since, If-None-Match file 황제낙엽 2018.03.27 726
112 재미난 로그인 페이지 만들기 file 황제낙엽 2018.03.26 1592
111 HTTP Cache-Control 요청 지시어 황제낙엽 2018.03.09 713
110 내 웹사이트의 속도를 빠르게! file 황제낙엽 2018.03.07 860
109 성능을 위한 초간단 HTTP 304 Not Modified 구현 방법 file 황제낙엽 2018.03.07 816