Merge pull request #1309 from bendardenne/transfer-whole-playlist

Transfer whole playlist when transferring playback
This commit is contained in:
dkanada 2020-06-03 15:34:39 +09:00 committed by GitHub
commit d728e8f47c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 38 additions and 39 deletions

View file

@ -95,6 +95,7 @@
"src/components/images/imageLoader.js", "src/components/images/imageLoader.js",
"src/components/lazyLoader/lazyLoaderIntersectionObserver.js", "src/components/lazyLoader/lazyLoaderIntersectionObserver.js",
"src/components/playback/mediasession.js", "src/components/playback/mediasession.js",
"src/components/playback/remotecontrolautoplay.js",
"src/components/sanatizefilename.js", "src/components/sanatizefilename.js",
"src/components/scrollManager.js", "src/components/scrollManager.js",
"src/components/bookPlayer/plugin.js", "src/components/bookPlayer/plugin.js",

View file

@ -1,32 +1,32 @@
define(['events', 'playbackManager'], function (events, playbackManager) { import events from 'events';
'use strict'; import playbackManager from 'playbackManager';
function transferPlayback(oldPlayer, newPlayer) { function transferPlayback(oldPlayer, newPlayer) {
const state = playbackManager.getPlayerState(oldPlayer);
var state = playbackManager.getPlayerState(oldPlayer); const item = state.NowPlayingItem;
var item = state.NowPlayingItem;
if (!item) { if (!item) {
return; return;
} }
var playState = state.PlayState || {}; playbackManager.getPlaylist(oldPlayer).then(playlist => {
var resumePositionTicks = playState.PositionTicks || 0; const playlistIds = playlist.map(x => x.Id);
const playState = state.PlayState || {};
playbackManager.stop(oldPlayer).then(function () { const resumePositionTicks = playState.PositionTicks || 0;
const playlistIndex = playlistIds.indexOf(item.Id) || 0;
playbackManager.stop(oldPlayer).then(() => {
playbackManager.play({ playbackManager.play({
ids: [item.Id], ids: playlistIds,
serverId: item.ServerId, serverId: item.ServerId,
startPositionTicks: resumePositionTicks startPositionTicks: resumePositionTicks,
startIndex: playlistIndex
}, newPlayer); }, newPlayer);
}); });
});
} }
events.on(playbackManager, 'playerchange', function (e, newPlayer, newTarget, oldPlayer) { events.on(playbackManager, 'playerchange', (e, newPlayer, newTarget, oldPlayer) => {
if (!oldPlayer || !newPlayer) { if (!oldPlayer || !newPlayer) {
return; return;
} }
@ -43,5 +43,3 @@ define(['events', 'playbackManager'], function (events, playbackManager) {
transferPlayback(oldPlayer, newPlayer); transferPlayback(oldPlayer, newPlayer);
}); });
});