mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
update video osd
This commit is contained in:
parent
7d8f6339a2
commit
5fb6288ba2
5 changed files with 55 additions and 27 deletions
|
@ -14,12 +14,12 @@
|
||||||
},
|
},
|
||||||
"devDependencies": {},
|
"devDependencies": {},
|
||||||
"ignore": [],
|
"ignore": [],
|
||||||
"version": "1.4.439",
|
"version": "1.4.441",
|
||||||
"_release": "1.4.439",
|
"_release": "1.4.441",
|
||||||
"_resolution": {
|
"_resolution": {
|
||||||
"type": "version",
|
"type": "version",
|
||||||
"tag": "1.4.439",
|
"tag": "1.4.441",
|
||||||
"commit": "83d5b3f38e168da5f42415f346c8d624fc8523e8"
|
"commit": "f887007409e0ab3a8ca1f5b2a58aac519fc2c5cc"
|
||||||
},
|
},
|
||||||
"_source": "https://github.com/MediaBrowser/emby-webcomponents.git",
|
"_source": "https://github.com/MediaBrowser/emby-webcomponents.git",
|
||||||
"_target": "^1.2.1",
|
"_target": "^1.2.1",
|
||||||
|
|
|
@ -191,6 +191,7 @@ define(['events', 'datetime', 'appSettings', 'pluginManager', 'userSettings', 'g
|
||||||
"SetVolume",
|
"SetVolume",
|
||||||
"SetAudioStreamIndex",
|
"SetAudioStreamIndex",
|
||||||
"SetSubtitleStreamIndex",
|
"SetSubtitleStreamIndex",
|
||||||
|
"SetMaxStreamingBitrate",
|
||||||
"DisplayContent",
|
"DisplayContent",
|
||||||
"GoToSearch",
|
"GoToSearch",
|
||||||
"DisplayMessage",
|
"DisplayMessage",
|
||||||
|
@ -376,6 +377,9 @@ define(['events', 'datetime', 'appSettings', 'pluginManager', 'userSettings', 'g
|
||||||
case 'SetSubtitleStreamIndex':
|
case 'SetSubtitleStreamIndex':
|
||||||
self.setSubtitleStreamIndex(parseInt(cmd.Arguments.Index), player);
|
self.setSubtitleStreamIndex(parseInt(cmd.Arguments.Index), player);
|
||||||
break;
|
break;
|
||||||
|
case 'SetMaxStreamingBitrate':
|
||||||
|
self.setMaxStreamingBitrate(parseInt(cmd.Arguments.Bitrate), player);
|
||||||
|
break;
|
||||||
case 'ToggleFullscreen':
|
case 'ToggleFullscreen':
|
||||||
self.toggleFullscreen(player);
|
self.toggleFullscreen(player);
|
||||||
break;
|
break;
|
||||||
|
@ -639,6 +643,36 @@ define(['events', 'datetime', 'appSettings', 'pluginManager', 'userSettings', 'g
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
self.getMaxStreamingBitrate = function (player) {
|
||||||
|
|
||||||
|
player = player || currentPlayer;
|
||||||
|
if (player && !enableLocalPlaylistManagement(player)) {
|
||||||
|
return player.getMaxStreamingBitrate();
|
||||||
|
}
|
||||||
|
|
||||||
|
return getPlayerData(player).maxStreamingBitrate || appSettings.maxStreamingBitrate();
|
||||||
|
};
|
||||||
|
|
||||||
|
self.setMaxStreamingBitrate = function (bitrate, player) {
|
||||||
|
|
||||||
|
player = player || currentPlayer;
|
||||||
|
if (player && !enableLocalPlaylistManagement(player)) {
|
||||||
|
return player.setMaxStreamingBitrate(bitrate);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (bitrate) {
|
||||||
|
appSettings.enableAutomaticBitrateDetection(false);
|
||||||
|
} else {
|
||||||
|
appSettings.enableAutomaticBitrateDetection(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
appSettings.maxStreamingBitrate(bitrate);
|
||||||
|
|
||||||
|
changeStream(player, getCurrentTicks(player), {
|
||||||
|
MaxStreamingBitrate: bitrate
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
self.getSubtitleStreamIndex = function (player) {
|
self.getSubtitleStreamIndex = function (player) {
|
||||||
|
|
||||||
player = player || currentPlayer;
|
player = player || currentPlayer;
|
||||||
|
@ -893,8 +927,6 @@ define(['events', 'datetime', 'appSettings', 'pluginManager', 'userSettings', 'g
|
||||||
|
|
||||||
params = params || {};
|
params = params || {};
|
||||||
|
|
||||||
var currentSrc = player.currentSrc();
|
|
||||||
|
|
||||||
var liveStreamId = getPlayerData(player).streamInfo.liveStreamId;
|
var liveStreamId = getPlayerData(player).streamInfo.liveStreamId;
|
||||||
var playSessionId = getPlayerData(player).streamInfo.playSessionId;
|
var playSessionId = getPlayerData(player).streamInfo.playSessionId;
|
||||||
|
|
||||||
|
@ -913,7 +945,9 @@ define(['events', 'datetime', 'appSettings', 'pluginManager', 'userSettings', 'g
|
||||||
ticks = parseInt(ticks);
|
ticks = parseInt(ticks);
|
||||||
}
|
}
|
||||||
|
|
||||||
getPlaybackInfo(apiClient, currentItem.Id, deviceProfile, appSettings.maxStreamingBitrate(), ticks, currentMediaSource, audioStreamIndex, subtitleStreamIndex, liveStreamId).then(function (result) {
|
var maxBitrate = params.MaxStreamingBitrate || self.getMaxStreamingBitrate(player);
|
||||||
|
|
||||||
|
getPlaybackInfo(apiClient, currentItem.Id, deviceProfile, maxBitrate, ticks, currentMediaSource, audioStreamIndex, subtitleStreamIndex, liveStreamId).then(function (result) {
|
||||||
|
|
||||||
if (validatePlaybackInfoResult(result)) {
|
if (validatePlaybackInfoResult(result)) {
|
||||||
|
|
||||||
|
@ -930,6 +964,7 @@ define(['events', 'datetime', 'appSettings', 'pluginManager', 'userSettings', 'g
|
||||||
|
|
||||||
getPlayerData(player).subtitleStreamIndex = subtitleStreamIndex;
|
getPlayerData(player).subtitleStreamIndex = subtitleStreamIndex;
|
||||||
getPlayerData(player).audioStreamIndex = audioStreamIndex;
|
getPlayerData(player).audioStreamIndex = audioStreamIndex;
|
||||||
|
getPlayerData(player).maxStreamingBitrate = maxBitrate;
|
||||||
|
|
||||||
changeStreamToUrl(apiClient, player, playSessionId, streamInfo);
|
changeStreamToUrl(apiClient, player, playSessionId, streamInfo);
|
||||||
});
|
});
|
||||||
|
@ -1536,6 +1571,7 @@ define(['events', 'datetime', 'appSettings', 'pluginManager', 'userSettings', 'g
|
||||||
streamInfo.fullscreen = playOptions.fullscreen;
|
streamInfo.fullscreen = playOptions.fullscreen;
|
||||||
|
|
||||||
getPlayerData(player).isChangingStream = false;
|
getPlayerData(player).isChangingStream = false;
|
||||||
|
getPlayerData(player).maxStreamingBitrate = maxBitrate;
|
||||||
|
|
||||||
return player.play(streamInfo).then(function () {
|
return player.play(streamInfo).then(function () {
|
||||||
onPlaybackStarted(player, streamInfo, mediaSource);
|
onPlaybackStarted(player, streamInfo, mediaSource);
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
options.push({ name: '720p - 6Mbps', maxHeight: 720, bitrate: 6000000 });
|
options.push({ name: '720p - 6Mbps', maxHeight: 720, bitrate: 6000000 });
|
||||||
options.push({ name: '720p - 5Mbps', maxHeight: 720, bitrate: 5000000 });
|
options.push({ name: '720p - 5Mbps', maxHeight: 720, bitrate: 5000000 });
|
||||||
|
|
||||||
} else if (maxAllowedWidth >= 700) {
|
} else if (maxAllowedWidth >= 620) {
|
||||||
options.push({ name: '480p - 4Mbps', maxHeight: 480, bitrate: 4000001 });
|
options.push({ name: '480p - 4Mbps', maxHeight: 480, bitrate: 4000001 });
|
||||||
options.push({ name: '480p - 3Mbps', maxHeight: 480, bitrate: 3000001 });
|
options.push({ name: '480p - 3Mbps', maxHeight: 480, bitrate: 3000001 });
|
||||||
options.push({ name: '480p - 2.5Mbps', maxHeight: 480, bitrate: 2500000 });
|
options.push({ name: '480p - 2.5Mbps', maxHeight: 480, bitrate: 2500000 });
|
||||||
|
|
|
@ -87,9 +87,7 @@
|
||||||
var currentPlayerSupportedCommands = [];
|
var currentPlayerSupportedCommands = [];
|
||||||
var currentRuntimeTicks = 0;
|
var currentRuntimeTicks = 0;
|
||||||
var lastUpdateTime = 0;
|
var lastUpdateTime = 0;
|
||||||
var lastPlayerState = {};
|
|
||||||
var isEnabled;
|
var isEnabled;
|
||||||
var currentItem;
|
|
||||||
|
|
||||||
var nowPlayingVolumeSlider = view.querySelector('.osdVolumeSlider');
|
var nowPlayingVolumeSlider = view.querySelector('.osdVolumeSlider');
|
||||||
var nowPlayingVolumeSliderContainer = view.querySelector('.osdVolumeSliderContainer');
|
var nowPlayingVolumeSliderContainer = view.querySelector('.osdVolumeSliderContainer');
|
||||||
|
@ -486,6 +484,8 @@
|
||||||
|
|
||||||
function onPlaybackStopped(e, state) {
|
function onPlaybackStopped(e, state) {
|
||||||
|
|
||||||
|
currentRuntimeTicks = null;
|
||||||
|
|
||||||
console.log('nowplaying event: ' + e.type);
|
console.log('nowplaying event: ' + e.type);
|
||||||
var player = this;
|
var player = this;
|
||||||
|
|
||||||
|
@ -559,8 +559,6 @@
|
||||||
lastUpdateTime = now;
|
lastUpdateTime = now;
|
||||||
|
|
||||||
var player = this;
|
var player = this;
|
||||||
var state = lastPlayerState;
|
|
||||||
var nowPlayingItem = state.NowPlayingItem || {};
|
|
||||||
currentRuntimeTicks = playbackManager.duration(player);
|
currentRuntimeTicks = playbackManager.duration(player);
|
||||||
updateTimeDisplay(playbackManager.currentTime(player), currentRuntimeTicks);
|
updateTimeDisplay(playbackManager.currentTime(player), currentRuntimeTicks);
|
||||||
}
|
}
|
||||||
|
@ -576,8 +574,6 @@
|
||||||
|
|
||||||
function updatePlayerStateInternal(event, state) {
|
function updatePlayerStateInternal(event, state) {
|
||||||
|
|
||||||
lastPlayerState = state;
|
|
||||||
|
|
||||||
var playerInfo = playbackManager.getPlayerInfo();
|
var playerInfo = playbackManager.getPlayerInfo();
|
||||||
|
|
||||||
var playState = state.PlayState || {};
|
var playState = state.PlayState || {};
|
||||||
|
@ -619,7 +615,7 @@
|
||||||
|
|
||||||
updateNowPlayingInfo(state);
|
updateNowPlayingInfo(state);
|
||||||
|
|
||||||
if (state.MediaSource && state.MediaSource.SupportsTranscoding) {
|
if (state.MediaSource && state.MediaSource.SupportsTranscoding && supportedCommands.indexOf('SetMaxStreamingBitrate') !== -1) {
|
||||||
view.querySelector('.btnSettings').classList.remove('hide');
|
view.querySelector('.btnSettings').classList.remove('hide');
|
||||||
} else {
|
} else {
|
||||||
view.querySelector('.btnSettings').classList.add('hide');
|
view.querySelector('.btnSettings').classList.add('hide');
|
||||||
|
@ -750,12 +746,12 @@
|
||||||
//var currentSrc = self.getCurrentSrc(self.currentMediaRenderer).toLowerCase();
|
//var currentSrc = self.getCurrentSrc(self.currentMediaRenderer).toLowerCase();
|
||||||
//var isStatic = currentSrc.indexOf('static=true') != -1;
|
//var isStatic = currentSrc.indexOf('static=true') != -1;
|
||||||
|
|
||||||
var videoStream = lastPlayerState.MediaSource.MediaStreams.filter(function (stream) {
|
var videoStream = playbackManager.currentMediaSource(currentPlayer).MediaStreams.filter(function (stream) {
|
||||||
return stream.Type == "Video";
|
return stream.Type === "Video";
|
||||||
})[0];
|
})[0];
|
||||||
var videoWidth = videoStream ? videoStream.Width : null;
|
var videoWidth = videoStream ? videoStream.Width : null;
|
||||||
|
|
||||||
var options = qualityoptions.getVideoQualityOptions(lastPlayerState.MaxStreamingBitrate, videoWidth);
|
var options = qualityoptions.getVideoQualityOptions(playbackManager.getMaxStreamingBitrate(currentPlayer), videoWidth);
|
||||||
|
|
||||||
//if (isStatic) {
|
//if (isStatic) {
|
||||||
// options[0].name = "Direct";
|
// options[0].name = "Direct";
|
||||||
|
@ -781,14 +777,12 @@
|
||||||
selectedId = selectedId.length ? selectedId[0].bitrate : null;
|
selectedId = selectedId.length ? selectedId[0].bitrate : null;
|
||||||
actionsheet.show({
|
actionsheet.show({
|
||||||
items: menuItems,
|
items: menuItems,
|
||||||
// history.back() will cause the video player to stop
|
|
||||||
enableHistory: false,
|
|
||||||
positionTo: btn,
|
positionTo: btn,
|
||||||
callback: function (id) {
|
callback: function (id) {
|
||||||
|
|
||||||
var bitrate = parseInt(id);
|
var bitrate = parseInt(id);
|
||||||
if (bitrate != selectedId) {
|
if (bitrate !== selectedId) {
|
||||||
//self.onQualityOptionSelected(bitrate);
|
playbackManager.setMaxStreamingBitrate(bitrate, currentPlayer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -930,9 +924,7 @@
|
||||||
|
|
||||||
nowPlayingPositionSlider.getBubbleText = function (value) {
|
nowPlayingPositionSlider.getBubbleText = function (value) {
|
||||||
|
|
||||||
var state = lastPlayerState;
|
if (!currentRuntimeTicks) {
|
||||||
|
|
||||||
if (!state || !state.NowPlayingItem || !currentRuntimeTicks) {
|
|
||||||
return '--:--';
|
return '--:--';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1007,7 +999,7 @@
|
||||||
function renderScenePicker(progressPct) {
|
function renderScenePicker(progressPct) {
|
||||||
|
|
||||||
chapterPcts = [];
|
chapterPcts = [];
|
||||||
var item = currentItem;
|
var item = playbackManager.currentItem(currentPlayer);
|
||||||
if (!item) {
|
if (!item) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -208,7 +208,7 @@
|
||||||
<i class="xlargePaperIconButton md-icon"></i>
|
<i class="xlargePaperIconButton md-icon"></i>
|
||||||
</button>
|
</button>
|
||||||
<button is="paper-icon-button-light" class="btnSettings hide autoSize">
|
<button is="paper-icon-button-light" class="btnSettings hide autoSize">
|
||||||
<i class="xlargePaperIconButton md-icon"></i>
|
<i class="largePaperIconButton md-icon"></i>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<div class="osdTimeText"><span class="osdPositionText"></span><span class="osdDurationText"></span><span class="endsAtText"></span></div>
|
<div class="osdTimeText"><span class="osdPositionText"></span><span class="osdDurationText"></span><span class="endsAtText"></span></div>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue