UNPKG

musickit-typescript

Version:

Typescript type definitions for MusicKit

181 lines (174 loc) 4.94 kB
// Type definitions for MusicKit JS 1.2.3 // Project: https://developer.apple.com/documentation/musickitjs // Definitions by: Waseem Dahman <https://github.com/wsmd> declare namespace MusicKit { /** * A media player that represents the media player for a MusicKit instance. */ interface Player { /** * The current bit rate of the music player. */ readonly bitrate: number; /** * The music player has EME loaded. */ readonly canSupportDRM: boolean; /** * The current playback duration. */ readonly currentPlaybackDuration: number; /** * The current playback progress. */ readonly currentPlaybackProgress: number; /** * The current position of the playhead. */ readonly currentPlaybackTime: number; /** * No description available. */ readonly currentPlaybackTimeRemaining: number; /** * The current playback duration in hours and minutes. */ readonly formattedCurrentPlaybackDuration: FormattedPlaybackDuration; /** * A Boolean value indicating whether the player is currently playing. */ readonly isPlaying: boolean; /** * The currently-playing media item, or the media item, within an queue, * that you have designated to begin playback. */ readonly nowPlayingItem: MediaItem; /** * The index of the now playing item in the current playback queue. */ readonly nowPlayingItemIndex?: number; /** * The current playback rate for the player. */ readonly playbackRate: number; /** * The current playback state of the music player. */ readonly playbackState: PlaybackStates; /** * A Boolean value that indicates whether a playback target is available. */ readonly playbackTargetAvailable?: boolean; /** * The current playback queue of the music player. */ readonly queue: Queue; /** * The current repeat mode of the music player. */ repeatMode: PlayerRepeatMode; /** * The current shuffle mode of the music player. */ shuffleMode: PlayerShuffleMode; /** * A number indicating the current volume of the music player. */ volume: number; /** * Adds an event listener as a callback for an event name. * * @param name The name of the event. * @param callback The callback function to invoke when the event occurs. */ addEventListener(name: string, callback: () => any): void; /** * Begins playing the media item at the specified index in the queue immediately. * * @param The queue index to begin playing media. */ changeToMediaAtIndex(index: number): Promise<MediaItemPosition>; /** * Begins playing the media item in the queue immediately. * * @param descriptor descriptor can be a MusicKit.MediaItem instance or a * string identifier. */ changeToMediaItem(descriptor: descriptor): Promise<MediaItemPosition>; /** * Sets the volume to 0. */ mute(): void; /** * Pauses playback of the current item. */ pause(): void; /** * Initiates playback of the current item. */ play(): Promise<MediaItemPosition>; /** * Prepares a music player for playback. * * @param descriptor descriptor can be a MusicKit.MediaItem instance or a * string identifier. */ prepareToPlay(descriptor: descriptor): Promise<void>; /** * No description available. * * @param name The name of the event. * @param callback The callback function to remove. */ removeEventListener(name: string, callback: () => any): void; /** * Sets the playback point to a specified time. * * @param time The time to set as the playback point. */ seekToTime(time: number): Promise<void>; /** * Displays the playback target picker if a playback target is available. */ showPlaybackTargetPicker(): void; /** * Starts playback of the next media item in the playback queue. */ skipToNextItem(): Promise<MediaItemPosition>; /** * Starts playback of the previous media item in the playback queue. */ skipToPreviousItem(): Promise<MediaItemPosition>; /** * Stops the currently playing media item. */ stop(): void; } /** * The playback states of the music player. */ enum PlaybackStates { none, loading, playing, paused, stopped, ended, seeking, waiting, stalled, completed, } /** * The playback bit rate of the music player. */ enum PlaybackBitrate { HIGH = 256, STANDARD = 64, } // enum is not exposed via the MusicKit namespace type PlayerRepeatMode = 0 | 1 | 2; // enum is not exposed via the MusicKit namespace type PlayerShuffleMode = 0 | 1; type MediaItemPosition = number; }