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";
|
|
|
|
|
2019-01-10 15:39:37 +03:00
|
|
|
var orientationLocked;
|
|
|
|
|
2018-10-23 01:05:09 +03:00
|
|
|
function onOrientationChangeSuccess() {
|
2019-01-10 15:39:37 +03:00
|
|
|
orientationLocked = true;
|
2018-10-23 01:05:09 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
function onOrientationChangeError(err) {
|
2019-01-10 15:39:37 +03:00
|
|
|
orientationLocked = false;
|
|
|
|
console.log('error locking orientation: ' + err);
|
2018-10-23 01:05:09 +03:00
|
|
|
}
|
2019-01-10 15:39:37 +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;
|
|
|
|
}
|
2019-11-23 00:29:38 +09:00
|
|
|
} catch (err) {
|
2019-01-10 15:39:37 +03:00
|
|
|
onOrientationChangeError(err);
|
|
|
|
}
|
2018-10-23 01:05:09 +03:00
|
|
|
}
|
|
|
|
}
|
2019-01-10 15:39:37 +03:00
|
|
|
});
|
|
|
|
|
|
|
|
events.on(playbackManager, 'playbackstop', function (e, playbackStopInfo) {
|
|
|
|
|
2018-10-23 01:05:09 +03:00
|
|
|
if (orientationLocked && !playbackStopInfo.nextMediaType) {
|
2019-01-10 15:39:37 +03:00
|
|
|
|
|
|
|
var unlockOrientation = screen.unlockOrientation || screen.mozUnlockOrientation || screen.msUnlockOrientation || (screen.orientation && screen.orientation.unlock);
|
|
|
|
|
2018-10-23 01:05:09 +03:00
|
|
|
if (unlockOrientation) {
|
|
|
|
try {
|
2019-01-10 15:39:37 +03:00
|
|
|
unlockOrientation();
|
2019-11-23 00:29:38 +09:00
|
|
|
} catch (err) {
|
2019-01-10 15:39:37 +03:00
|
|
|
console.log('error unlocking orientation: ' + err);
|
2018-10-23 01:05:09 +03:00
|
|
|
}
|
2019-01-10 15:39:37 +03:00
|
|
|
orientationLocked = false;
|
2018-10-23 01:05:09 +03:00
|
|
|
}
|
|
|
|
}
|
2019-01-10 15:39:37 +03:00
|
|
|
});
|
2018-10-23 01:05:09 +03:00
|
|
|
});
|