Reputation: 5281
I am working with the HTML5 media API and stuck at it's mute property. I have this mute button that i want to use to mute and unmute the audio for the particular video whenever i click it. The problem is that it works whenever i mute it but I cannot unmute it. The classes and title values get properly set to the appropriate values but there is no change in the volume or the icon image. Here is a link to my jsfiddle code http://jsfiddle.net/7AS3C/1/ The CSS problem doesn't occur when i uploaded the code to jsfiddle. Would really appreciate it if someone helped me out with the javascript.
<div id="mediaplayer">
<video id="media-video" controls>
<source src='http://video.webmfiles.org/big-buck-bunny_trailer.webm' type='video/webm' controls>
</video>
<div>
<div id="media-controls">
<progress id="progress-bar" min="0" max="100" value="0"></progress>
<button id='replay-button' class='replay' title='replay' onclick='replayMedia();'>Replay</button>
<button id='play-pause-button' class='play' title='play' onclick='togglePlayPause();'>Play</button>
<button id='stop-button' class='stop' title='stop' onclick='stopPlayer();'>Stop</button>
<button id='volume-inc-button' class='volume-plus' title='increase volume' onclick='changeVolume("+");'>Increase volume</button>
<button id='volume-dec-button' class='volume-minus' title='decrease volume' onclick='changeVolume("-");'>Decrease volume</button>
<button id='mute-btn' class='mute' title='mute' onclick='toggleMute();'>Mute</button>
</div>
</div>
</div>
Here is the css
.unmute {
width:45px;
height:48px;
background:url('mute.png');
background-position: 0px 0px;
}
.mute {
width:45px;
height:48px;
background:url('unmute.png');
background-position: 0px 0px;
}
Here is my javascript
muteBtn = document.getElementById('mute-btn');
function toggleMute() {
if (player.muted = false) {
changeButtonType(muteBtn, 'mute');
player.muted = "true";
} else if (player.muted = true) {
changeButtonType(muteBtn, 'unmute');
player.muted = "false";
} else player.muted = "false";
}
function changeButtonType(buttonType, value) {
buttonType.title = value;
buttonType.innerHTML = value;
buttonType.className = value;
}
Upvotes: 1
Views: 1184
Reputation: 1513
The conditional logic is assigning instead of comparing
if (player.muted = false) {
should be
if (player.muted === false) {
and
player.muted = "true";
should be
player.muted = true;
Same holds for the false block
Upvotes: 3