| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- export interface PlaybackSnapshotSong {
- filePath: string
- id?: string
- type: number
- name: string
- isFav?: number
- artist?: string
- album?: string
- duration?: string
- pixelMapPath?: string
- lyricContent?: string
- remote_rel_path?: string
- webdav_account_id?: string
- }
- export interface PlaybackSnapshot {
- queue: PlaybackSnapshotSong[]
- currentIndex: number
- currentSongKey: string
- currentSongName: string
- currentArtist?: string
- isPlaying: boolean
- positionMs: number
- durationMs: number
- cover?: string
- playType: number
- playlistContext: string
- updatedAt: number
- shouldResumeWhenActivated: boolean
- }
- export type PlaybackActivationActionType = 'resume_play' | 'open_player' | 'play_previous' | 'play_next'
- export interface PendingPlaybackActivation {
- actionType: PlaybackActivationActionType
- requestedAt: number
- }
- export function resolvePlaybackSnapshotProgressValue(positionMs: number, durationMs: number, maxValue: number): number {
- if (durationMs <= 0 || maxValue <= 0) {
- return 0
- }
- const clampedPositionMs = Math.max(0, Math.min(positionMs, durationMs))
- return clampedPositionMs / durationMs * maxValue
- }
|