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/remotecontrolautoplay.js
2020-11-05 22:58:26 +00:00

45 lines
1.4 KiB
JavaScript

import events from 'jellyfin-apiclient';
import playbackManager from '../playback/playbackmanager';
function transferPlayback(oldPlayer, newPlayer) {
const state = playbackManager.getPlayerState(oldPlayer);
const item = state.NowPlayingItem;
if (!item) {
return;
}
playbackManager.getPlaylist(oldPlayer).then(playlist => {
const playlistIds = playlist.map(x => x.Id);
const playState = state.PlayState || {};
const resumePositionTicks = playState.PositionTicks || 0;
const playlistIndex = playlistIds.indexOf(item.Id) || 0;
playbackManager.stop(oldPlayer).then(() => {
playbackManager.play({
ids: playlistIds,
serverId: item.ServerId,
startPositionTicks: resumePositionTicks,
startIndex: playlistIndex
}, newPlayer);
});
});
}
events.on(playbackManager, 'playerchange', (e, newPlayer, newTarget, oldPlayer) => {
if (!oldPlayer || !newPlayer) {
return;
}
if (!oldPlayer.isLocalPlayer) {
console.debug('Skipping remote control autoplay because oldPlayer is not a local player');
return;
}
if (newPlayer.isLocalPlayer) {
console.debug('Skipping remote control autoplay because newPlayer is a local player');
return;
}
transferPlayback(oldPlayer, newPlayer);
});