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

Merge pull request #6196 from viown/prompt-to-skip

Add 'ask to skip' to media segments
This commit is contained in:
Bill Thornton 2024-10-25 17:18:30 -04:00 committed by GitHub
commit fa1934a124
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 277 additions and 25 deletions

View file

@ -22,10 +22,13 @@ import { getItems } from '../../utils/jellyfin-apiclient/getItems.ts';
import { getItemBackdropImageUrl } from '../../utils/jellyfin-apiclient/backdropImage';
import { bindMediaSegmentManager } from 'apps/stable/features/playback/utils/mediaSegmentManager';
import { PlayerEvent } from 'apps/stable/features/playback/constants/playerEvent';
import { MediaError } from 'types/mediaError';
import { getMediaError } from 'utils/mediaError';
import { toApi } from 'utils/jellyfin-apiclient/compat';
import { BaseItemKind } from '@jellyfin/sdk/lib/generated-client/models/base-item-kind.js';
import browser from 'scripts/browser.js';
import { bindSkipSegment } from './skipsegment.ts';
const UNLIMITED_ITEMS = -1;
@ -933,6 +936,14 @@ export class PlaybackManager {
return Promise.resolve(self._playQueueManager.getPlaylist());
};
self.promptToSkip = function (mediaSegment, player) {
player = player || self._currentPlayer;
if (mediaSegment && this._skipSegment) {
Events.trigger(player, PlayerEvent.PromptSkip, [mediaSegment]);
}
};
function removeCurrentPlayer(player) {
const previousPlayer = self._currentPlayer;
@ -3676,6 +3687,9 @@ export class PlaybackManager {
}
bindMediaSegmentManager(self);
if (!browser.tv && !browser.xboxOne && !browser.ps4) {
this._skipSegment = bindSkipSegment(self);
}
}
getCurrentPlayer() {
@ -3690,6 +3704,10 @@ export class PlaybackManager {
return this.getCurrentTicks(player) / 10000;
}
getNextItem() {
return this._playQueueManager.getNextItemInfo();
}
nextItem(player = this._currentPlayer) {
if (player && !enableLocalPlaylistManagement(player)) {
return player.nextItem();