1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

update volume

This commit is contained in:
Luke Pulverenti 2017-01-02 01:23:37 -05:00
parent 1b885abcb2
commit bd391e3625
2 changed files with 41 additions and 17 deletions

View file

@ -1,4 +1,4 @@
define(['events', 'browser', 'pluginManager', 'apphost'], function (events, browser, pluginManager, appHost) {
define(['events', 'browser', 'pluginManager', 'apphost', 'appSettings'], function (events, browser, pluginManager, appHost, appSettings) {
"use strict";
return function () {
@ -15,6 +15,16 @@ define(['events', 'browser', 'pluginManager', 'apphost'], function (events, brow
var mediaElement;
var currentSrc;
function getSavedVolume() {
return appSettings.get("volume") || 1;
}
function saveVolume(value) {
if (value) {
appSettings.set("volume", value);
}
}
self.canPlayMediaType = function (mediaType) {
return (mediaType || '').toLowerCase() === 'audio';
@ -263,6 +273,7 @@ define(['events', 'browser', 'pluginManager', 'apphost'], function (events, brow
function onVolumeChange() {
if (!fadeTimeout) {
saveVolume(this.volume);
events.trigger(self, 'volumechange');
}
}
@ -318,6 +329,8 @@ define(['events', 'browser', 'pluginManager', 'apphost'], function (events, brow
document.body.appendChild(elem);
elem.volume = getSavedVolume();
elem.addEventListener('timeupdate', onTimeUpdate);
elem.addEventListener('ended', onEnded);
elem.addEventListener('volumechange', onVolumeChange);

View file

@ -1,4 +1,4 @@
define(['browser', 'pluginManager', 'events', 'apphost', 'loading', 'playbackManager', 'embyRouter'], function (browser, pluginManager, events, appHost, loading, playbackManager, embyRouter) {
define(['browser', 'pluginManager', 'events', 'apphost', 'loading', 'playbackManager', 'embyRouter', 'appSettings'], function (browser, pluginManager, events, appHost, loading, playbackManager, embyRouter, appSettings) {
"use strict";
return function () {
@ -31,6 +31,16 @@ define(['browser', 'pluginManager', 'events', 'apphost', 'loading', 'playbackMan
return (mediaType || '').toLowerCase() === 'video';
};
function getSavedVolume() {
return appSettings.get("volume") || 1;
}
function saveVolume(value) {
if (value) {
appSettings.set("volume", value);
}
}
function getBaseProfileOptions(item) {
var disableHlsVideoAudioCodecs = [];
@ -446,39 +456,38 @@ define(['browser', 'pluginManager', 'events', 'apphost', 'loading', 'playbackMan
return false;
};
self.volume = function (val) {
self.setVolume = function (val) {
if (mediaElement) {
if (val != null) {
mediaElement.volume = val / 100;
return;
}
};
self.getVolume = function () {
if (mediaElement) {
return mediaElement.volume * 100;
}
};
self.volumeUp = function () {
self.volume(Math.min(self.volume() + 2, 100));
self.setVolume(Math.min(self.getVolume() + 2, 100));
};
self.volumeDown = function () {
self.volume(Math.max(self.volume() - 2, 0));
self.setVolume(Math.max(self.getVolume() - 2, 0));
};
self.setMute = function (mute) {
if (mute) {
self.volume(0);
} else {
if (self.isMuted()) {
self.volume(50);
}
if (mediaElement) {
mediaElement.muted = mute;
}
};
self.isMuted = function () {
return self.volume() === 0;
if (mediaElement) {
return mediaElement.muted;
}
return false;
};
function onEnded() {
@ -523,6 +532,7 @@ define(['browser', 'pluginManager', 'events', 'apphost', 'loading', 'playbackMan
function onVolumeChange() {
saveVolume(this.volume);
events.trigger(self, 'volumechange');
}
@ -1066,6 +1076,7 @@ define(['browser', 'pluginManager', 'events', 'apphost', 'loading', 'playbackMan
dlg.innerHTML = html;
var videoElement = dlg.querySelector('video');
videoElement.volume = getSavedVolume();
videoElement.addEventListener('timeupdate', onTimeUpdate);
videoElement.addEventListener('ended', onEnded);
videoElement.addEventListener('volumechange', onVolumeChange);