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

55 lines
1.9 KiB
JavaScript
Raw Normal View History

2019-01-23 11:33:34 +00:00
define(['playbackManager', 'layoutManager', 'events'], function (playbackManager, layoutManager, events) {
2018-10-23 01:05:09 +03:00
"use strict";
var orientationLocked;
2018-10-23 01:05:09 +03:00
function onOrientationChangeSuccess() {
orientationLocked = true;
2018-10-23 01:05:09 +03:00
}
function onOrientationChangeError(err) {
orientationLocked = false;
console.log('error locking orientation: ' + err);
2018-10-23 01:05:09 +03:00
}
events.on(playbackManager, 'playbackstart', function (e, player, state) {
var isLocalVideo = player.isLocalPlayer && !player.isExternalPlayer && playbackManager.isPlayingVideo(player);
if (isLocalVideo && layoutManager.mobile) {
var lockOrientation = screen.lockOrientation || screen.mozLockOrientation || screen.msLockOrientation || (screen.orientation && screen.orientation.lock);
if (lockOrientation) {
try {
var promise = lockOrientation('landscape');
if (promise.then) {
promise.then(onOrientationChangeSuccess, onOrientationChangeError);
} else {
// returns a boolean
orientationLocked = promise;
}
} catch (err) {
onOrientationChangeError(err);
}
2018-10-23 01:05:09 +03:00
}
}
});
events.on(playbackManager, 'playbackstop', function (e, playbackStopInfo) {
2018-10-23 01:05:09 +03:00
if (orientationLocked && !playbackStopInfo.nextMediaType) {
var unlockOrientation = screen.unlockOrientation || screen.mozUnlockOrientation || screen.msUnlockOrientation || (screen.orientation && screen.orientation.unlock);
2018-10-23 01:05:09 +03:00
if (unlockOrientation) {
try {
unlockOrientation();
} catch (err) {
console.log('error unlocking orientation: ' + err);
2018-10-23 01:05:09 +03:00
}
orientationLocked = false;
2018-10-23 01:05:09 +03:00
}
}
});
2018-10-23 01:05:09 +03:00
});