HTML5 강좌 16강 - HTML5 태그 - 미디어 제어하기

 

이번 강좌에서는 미디어 파일을 자바스크립트를 통해 제어해 보도록 하겠습니다.

 

자바스크립트에 대해 생소한 분들이 있을수도 있겠네요.

자바스크립트는 웹 문서의 기능적인 부분이나 제어적인 부분을 처리하는 언어 정도로

간단히 인지하고 넘어가면 될 듯 합니다.

자바스크립트에 대한 강좌는 html5 강좌 이후에 진행하겠습니다.

 

먼저 기본적인 메소드를 보겠습니다.

 

*play() : 미디어 파일을 재생함

*pause() : 미디어 파일을 일시 정지함

 

위 내용대로 한 버튼에는 미디어 파일을 재생하는 버튼을 연동시키려 하고요

한 버튼에는 미디어파일을 일시정지 하는 버튼을 연동시켜 보겠습니다.

 

먼저 버튼을 만들고 onclick 속성을 이용하여 클릭했을 경우 발생하는 이벤트, 즉 메소드를 연결하겠습니다.

 

<button onclick="mediaPlay()">재생 하기</button> 

<button onclick="mediaPause()">일시 정지</button> 

 

 

01.jpg

 

 

 

그리고 자바스크립트 코드에서 각각 버튼의 메소드.. play(), pause() 의 실행을 요청받았을 때

응답할 동작을 작성해보죠.

 

function mediaPlay(){

alert("플레이버튼");

}

 

위 코드는 'mediaPlay()라는 메소드가 실행되면 응답으로 { } 안에 내용을 실행하겠다' 라는 의미입니다.

alert 이란 명령어는 경고메시지를 보여준다는 명령어고요.. 경고메시지는 '플레이버튼' 입니다.

정리하면 플레이버튼 클릭시 '플레이버트' 이라는 경고메시지를 띄우는 겁니다.


mediaPause() 메소드 역시 같은 방식으로 자바스크립트 함수를 하나 만들겠습니다.

 

function mediaPause(){

alert("포즈버튼");

}

 

 

02.jpg

 

 

 

간단히 테스트를 해봤습니다.

이제는 미디어 파일을 재생하는 기능을 자바스크립트 코드에 넣어보죠.

 

function mediaPlay(){

document.getElementById('player').play();

}

function mediaPause(){

document.getElementById('player').pause();

}

 

위 함수 mediaPlay()의 내용은 'player라는 아이디를 가진 문서의 객체를 플레이 하라' 라는 명령입니다.

반대로 mediaPause()의 내용은 'player라는 아이디를 가진 문서의 객체를 일시정지 하라' 라는 명령이죠.

 

이제 다른 기능도 추가로 넣어보겠습니다.

볼륨을 조절하는 기능을 넣어보죠.

 

<button onclick="mediaVolumeUp()">볼륨 +</button> 

<button onclick="mediaVolumeDown()">볼륨 -</button> 

 

위와같이 버튼을 생성하고요.

 

function mediaVolumeUp(){

document.getElementById('player').volume += 0.1

}

function mediaVolumeDown(){

document.getElementById('player').volume -= 0.1

}

 

위와같이 버튼 클릭시 실행할 함수도 만들었습니다.

 

 

03.jpg

 

 

 

아주 잘 작동하네요.

이번에는 재생속도를 조절하는 기능입니다.

 

<button onclick="increaseSpeed()">재생 속도 +</button> 

<button onclick="decreaseSpeed()">재생 속도 -</button> 

<button onclick="defaultSpeed()">기본 속도</button>

 

먼저 버튼을 만들었습니다.

그리고 자바스크립트 함수를 만들겠습니다.

 

function increaseSpeed(){

document.getElementById('player').playbackRate += 0.1; 

}

function decreaseSpeed(){

document.getElementById('player').playbackRate -= 0.1; 

}

function defaultSpeed(){ 

document.getElementById('player').playbackRate = 1; 

}

 

 

04.jpg

 

 

 

 

하나 더 만들어볼까요?

미디어 파일의 크기를 조절하는 기능을 만들어보죠.

 

<button onclick="increaseSize()">화면크기 +</button> 

<button onclick="decreaseSize()">화면크기 -</button> 

<button onclick="defaultSize()">원래크기로</button>

 

이렇게 버튼을 생성하고요.

 

function increaseSize(){

document.getElementById('player').width += 100;

document.getElementById('player').height += 100;

 

}

function decreaseSize(){

document.getElementById('player').width -= 100;

document.getElementById('player').height -= 100;

}

function defaultSize(){

document.getElementById('player').width = 400;

document.getElementById('player').height = 300;

}

 

자바스크립트 함수를 추가합니다.

 

 

05.jpg

 

 

 

 

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

 

16.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