first commit
Some checks failed
Build / run (push) Has been cancelled

This commit is contained in:
maher
2025-10-29 11:42:25 +01:00
commit 703f50a09d
4595 changed files with 385164 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
import {Optional} from 'utility-types';
import {PlayerState} from '@common/player/state/player-state';
import {PlayerStoreOptions} from '@common/player/state/player-store-options';
export function initPlayerMediaSession(
state: () => PlayerState,
options: PlayerStoreOptions
) {
if ('mediaSession' in navigator) {
const actionHandlers: Optional<
Record<MediaSessionAction, MediaSessionActionHandler>
> = {
play: () => state().play(),
pause: () => state().pause(),
previoustrack: () => state().playPrevious(),
nexttrack: () => state().playNext(),
stop: () => state().stop(),
seekbackward: () => state().seek(state().getCurrentTime() - 10),
seekforward: () => state().seek(state().getCurrentTime() + 10),
seekto: details => state().seek(details.seekTime || 0),
};
for (const key in actionHandlers) {
try {
navigator.mediaSession.setActionHandler(
key as MediaSessionAction,
actionHandlers[key as MediaSessionAction]!
);
} catch (error) {}
}
const cuedMedia = state().cuedMedia;
if (cuedMedia) {
options.setMediaSessionMetadata?.(cuedMedia);
}
}
}