muted prop implemented in HTMLVideo

This commit is contained in:
NikolaBorislavovHristov 2019-03-22 15:23:02 +02:00
parent cb60e8cca5
commit af71d53c52

View file

@ -71,7 +71,14 @@ function HTMLVideo(options) {
return null;
}
return videoElement.muted ? 0 : Math.floor(videoElement.volume * 100);
return Math.floor(videoElement.volume * 100);
}
function getMuted() {
if (destroyed) {
return null;
}
return videoElement.muted;
}
function getSubtitleTracks() {
if (!loaded) {
@ -138,6 +145,7 @@ function HTMLVideo(options) {
events.emit('propChanged', 'buffering', getBuffering());
}
function onVolumeChanged() {
events.emit('propChanged', 'muted', getMuted());
events.emit('propChanged', 'volume', getVolume());
}
function onSubtitleTracksChanged() {
@ -274,6 +282,12 @@ function HTMLVideo(options) {
videoElement.addEventListener('volumechange', onVolumeChanged);
return;
}
case 'muted': {
events.emit('propValue', 'muted', getMuted());
videoElement.removeEventListener('volumechange', onVolumeChanged);
videoElement.addEventListener('volumechange', onVolumeChanged);
return;
}
case 'subtitleTracks': {
events.emit('propValue', 'subtitleTracks', getSubtitleTracks());
return;
@ -333,6 +347,10 @@ function HTMLVideo(options) {
return;
}
case 'muted': {
videoElement.muted = !!arguments[2];
return;
}
case 'selectedSubtitleTrackId': {
if (loaded) {
subtitles.dispatch('setProp', 'selectedTrackId', arguments[2]);
@ -388,18 +406,6 @@ function HTMLVideo(options) {
return;
}
case 'mute': {
videoElement.muted = true;
return;
}
case 'unmute': {
videoElement.muted = false;
if (videoElement.volume === 0) {
videoElement.volume = 0.5;
}
return;
}
case 'stop': {
loaded = false;
dispatchArgsLoadedQueue = [];
@ -484,7 +490,7 @@ HTMLVideo.ERROR = Object.freeze({
HTMLVideo.manifest = Object.freeze({
name: 'HTMLVideo',
embedded: true,
props: Object.freeze(['paused', 'time', 'duration', 'volume', 'buffering', 'subtitleTracks', 'selectedSubtitleTrackId', 'subtitleSize', 'subtitleDelay', 'subtitleDarkBackground', 'subtitleOffset'])
props: Object.freeze(['paused', 'time', 'duration', 'volume', 'muted', 'buffering', 'subtitleTracks', 'selectedSubtitleTrackId', 'subtitleSize', 'subtitleDelay', 'subtitleDarkBackground', 'subtitleOffset'])
});
Object.freeze(HTMLVideo);