2021. 3. 16. 18:21ㆍProjects/유튜브 클론코딩
8.2 Mute / UnMute
🍙 이번시간에 해볼 것 : 🔊볼륨 ON(Unmute) / 🔇볼륨OFF(Mute)
참고: https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement
🍳videoPlayer.pug에 id추가하기
늘 그랬듯이, videoPlayer.pug 파일에서 볼륨버튼에 해당하는 span태그에 아이디를 추가해준다.
mixin videoPlayer(video = {})
.videoPlayer#jsVideoPlayer
video(src=`/${video.src}`)
.videoPlayer__controls
.videoPlayer__column
span#jsVolumeButton
i.fas.fa-volume-up
span
|00:00 / 10:00
.videoPlayer__column
span#jsPlayButton
i.fas.fa-play
.videoPlayer__column
span
i.fas.fa-expand
↑ videoPlayer.pug
🍳videoPlayer.js 작성하기
const videoContainer = document.getElementById("jsVideoPlayer");
const videoPlayer = document.querySelector("#jsVideoPlayer video");
const playBtn = document.getElementById("jsPlayButton");
const volumeBtn = document.getElementById("jsVolumeButton");
function handlePlayClick(){
if(videoPlayer.paused){
videoPlayer.play();
playBtn.innerHTML = '<i class="fas fa-pause"></i>';
}else{
videoPlayer.pause();
playBtn.innerHTML = '<i class="fas fa-play"></i>';
}
}
function handleVolumeClick(){
if(videoPlayer.muted){ //비디오가 음소거 되어 있으면
videoPlayer.muted = false; //음소거를 해제한다.
volumeBtn.innerHTML = '<i class="fas fa-volume-up"></i>'; // 소리나는 아이콘
}else{ // 비디오가 음소거되어있지 않으면
videoPlayer.muted = true; // 음소거 상태로 만든다.
volumeBtn.innerHTML = '<i class="fas fa-volume-mute"></i>' // 음소거 아이콘
}
}
function init(){
playBtn.addEventListener("click", handlePlayClick);
volumeBtn.addEventListener("click", handleVolumeClick);
}
if(videoContainer){
init();
}
재생버튼이랑 정지버튼은 내가 영상을 재생중일때에는 ⏸ 버튼이 떠야 하고
정지상태일 때는 ▶ 버튼이 떠야 하게 반대로 해야 한다면
음소거버튼은 현재 상태를 보여주는게 더 직관적으로 이해가 되니까
비디오가 음소거된 상태라면 클릭했을 떄 음소거를 해제하고, 현재 소리가 나는 상태이므로 🔊 가 나오게 한다.
비디오가 음소거되어있지 않다면 클릭했을 때 음소거 상태로 만들고 현재 음소거 상태이므로 🔇로 지정해준다.
'Projects > 유튜브 클론코딩' 카테고리의 다른 글
[유튜브 클론코딩] 8.4 Total time and Current time (0) | 2021.03.18 |
---|---|
[유튜브 클론코딩] 8.3 Enter Fullscreen / Exit Fullscreen (0) | 2021.03.16 |
[유튜브 클론코딩] 8.1 Play Pause Functionality (0) | 2021.03.16 |
[유튜브 클론코딩] 8.0 Starting the Video Player (0) | 2021.03.16 |
[유튜브 클론코딩] 7.3 Adding Creator to Video / 7.4 Protecting Video Routes (0) | 2021.03.15 |