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

support choosing optimal video version

This commit is contained in:
Luke Pulverenti 2014-03-21 00:52:46 -04:00
parent 02a810cf1e
commit 0f37c36d24
3 changed files with 33 additions and 10 deletions

View file

@ -399,12 +399,37 @@
self.playlist = items;
currentPlaylistIndex = 0;
};
function getOptimalMediaVersion(versions) {
// TODO: Implement
self.getBitrateSetting = function() {
return parseInt(localStorage.getItem('preferredVideoBitrate') || '') || 1500000;
};
return versions[0];
function getOptimalMediaVersion(mediaType, versions) {
var optimalVersion;
if (mediaType == 'Video') {
var bitrateSetting = self.getBitrateSetting();
var maxAllowedWidth = Math.max(screen.height, screen.width);
optimalVersion = versions.filter(function (v) {
var videoStream = v.MediaStreams.filter(function (s) {
return s.Type == 'Video';
})[0];
var audioStream = v.MediaStreams.filter(function (s) {
return s.Type == 'Audio';
})[0];
return self.canPlayVideoDirect(v, videoStream, audioStream, null, maxAllowedWidth, bitrateSetting);
})[0];
}
return optimalVersion || versions[0];
}
self.playInternal = function (item, startPosition, user) {
@ -424,7 +449,7 @@
if (item.MediaType === "Video") {
currentItem = item;
currentMediaVersion = getOptimalMediaVersion(item.MediaVersions);
currentMediaVersion = getOptimalMediaVersion(item.MediaType, item.MediaVersions);
videoPlayer(self, item, currentMediaVersion, startPosition, user);
mediaElement = self.initVideoPlayer();
@ -435,7 +460,7 @@
} else if (item.MediaType === "Audio") {
currentItem = item;
currentMediaVersion = getOptimalMediaVersion(item.MediaVersions);
currentMediaVersion = getOptimalMediaVersion(item.MediaType, item.MediaVersions);
mediaElement = playAudio(item, currentMediaVersion, startPosition);
mediaControls.show();