mirror of
https://github.com/hensm/fx_cast.git
synced 2026-06-08 16:49:58 +00:00
Add newer cast API additions and stub methods
This commit is contained in:
@@ -8,10 +8,6 @@ import { AutoJoinPolicy
|
||||
|
||||
|
||||
export default class ApiConfig {
|
||||
public additionalSessionRequests: any[] = [];
|
||||
public customDialLaunchCallback: any = null;
|
||||
public invisibleSender = false;
|
||||
|
||||
constructor (
|
||||
public sessionRequest: SessionRequest
|
||||
, public sessionListener: (session: Session) => void
|
||||
|
||||
9
ext/src/shim/cast/classes/CredentialsData.ts
Normal file
9
ext/src/shim/cast/classes/CredentialsData.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
"use strict";
|
||||
|
||||
// https://developers.google.com/cast/docs/reference/chrome/chrome.cast.CredentialsData
|
||||
export default class DialRequest {
|
||||
constructor (
|
||||
public credentials: string
|
||||
, public credentialsData: string) {
|
||||
}
|
||||
}
|
||||
@@ -3,7 +3,7 @@
|
||||
import ReceiverDisplayStatus from "./ReceiverDisplayStatus";
|
||||
import Volume from "./Volume";
|
||||
|
||||
import { ReceiverType } from "../enums";
|
||||
import { Capability, ReceiverType } from "../enums";
|
||||
|
||||
|
||||
// https://developers.google.com/cast/docs/reference/chrome/chrome.cast.Receiver
|
||||
@@ -15,7 +15,7 @@ export default class Receiver {
|
||||
constructor (
|
||||
public label: string
|
||||
, public friendlyName: string
|
||||
, public capabilities: string[] = []
|
||||
, public capabilities: Capability[] = []
|
||||
, public volume: (Volume | null) = null) {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,19 +1,20 @@
|
||||
"use strict";
|
||||
|
||||
import { Capability } from "../enums";
|
||||
import CredentialsData from "./CredentialsData";
|
||||
import Timeout from "./Timeout";
|
||||
|
||||
import { Capability } from "../enums";
|
||||
|
||||
|
||||
// https://developers.google.com/cast/docs/reference/chrome/chrome.cast.SessionRequest
|
||||
export default class SessionRequest {
|
||||
public language: (string | null) = null;
|
||||
public dialRequest: any = null;
|
||||
|
||||
constructor (
|
||||
public appId: string
|
||||
, public capabilities = [
|
||||
Capability.VIDEO_OUT
|
||||
, Capability.AUDIO_OUT ]
|
||||
, public requestSessionTimeout: number
|
||||
= (new Timeout()).requestSession) {}
|
||||
, public capabilities = [ Capability.VIDEO_OUT
|
||||
, Capability.AUDIO_OUT ]
|
||||
, public timeout: number = (new Timeout()).requestSession
|
||||
, public androidReceiverCompatible = false
|
||||
, public credentialsData: (CredentialsData | null) = null) {}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
import logger from "../../lib/logger";
|
||||
|
||||
import ApiConfig from "./classes/ApiConfig";
|
||||
import CredentialsData from "./classes/CredentialsData";
|
||||
import DialRequest from "./classes/DialRequest";
|
||||
import Error_ from "./classes/Error";
|
||||
import Image_ from "./classes/Image";
|
||||
@@ -56,14 +57,13 @@ let sessionErrorCallback: ErrorCallback;
|
||||
|
||||
export {
|
||||
// Enums
|
||||
AutoJoinPolicy, Capability, DefaultActionPolicy, DialAppState
|
||||
, ErrorCode, ReceiverAction, ReceiverAvailability, ReceiverType
|
||||
, SenderPlatform, SessionStatus, VolumeControlType
|
||||
AutoJoinPolicy, Capability, DefaultActionPolicy, DialAppState, ErrorCode
|
||||
, ReceiverAction, ReceiverAvailability, ReceiverType, SenderPlatform
|
||||
, SessionStatus, VolumeControlType
|
||||
|
||||
// Classes
|
||||
, ApiConfig, DialRequest, ReceiverDisplayStatus
|
||||
, SenderApplication, Session, SessionRequest, Timeout
|
||||
, Volume
|
||||
, ApiConfig, CredentialsData, DialRequest, ReceiverDisplayStatus
|
||||
, SenderApplication, Session, SessionRequest, Timeout, Volume
|
||||
|
||||
, Error_ as Error
|
||||
, Image_ as Image
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
"use strict";
|
||||
|
||||
import Image from "../../classes/Image";
|
||||
|
||||
import { MetadataType } from "../enums";
|
||||
|
||||
|
||||
export default class AudiobookChapterMediaMetadata {
|
||||
public bookTitle?: string;
|
||||
public chapterNumber?: number;
|
||||
public chapterTitle?: string;
|
||||
public images?: Image[];
|
||||
public subtitle?: string;
|
||||
public title?: string;
|
||||
public type = MetadataType.AUDIOBOOK_CHAPTER;
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
"use strict";
|
||||
|
||||
export default class AudiobookContainerMetadata {
|
||||
public authors?: string[];
|
||||
public narrators?: string[];
|
||||
public publisher?: string;
|
||||
public releaseDate?: string;
|
||||
}
|
||||
11
ext/src/shim/cast/media/classes/Break.ts
Normal file
11
ext/src/shim/cast/media/classes/Break.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
"use strict";
|
||||
|
||||
export default class Break {
|
||||
public duration?: number;
|
||||
public isEmbedded?: boolean;
|
||||
public isWatched = false;
|
||||
|
||||
constructor(public id: string
|
||||
, public breakClipIds: string[]
|
||||
, public position: number) {}
|
||||
}
|
||||
22
ext/src/shim/cast/media/classes/BreakClip.ts
Normal file
22
ext/src/shim/cast/media/classes/BreakClip.ts
Normal file
@@ -0,0 +1,22 @@
|
||||
"use strict";
|
||||
|
||||
import VastAdsRequest from "./VastAdsRequest";
|
||||
|
||||
import { HlsSegmentFormat } from "../enums";
|
||||
|
||||
|
||||
export default class BreakClip {
|
||||
public clickThroughUrl?: string;
|
||||
public contentId?: string;
|
||||
public contentType?: string;
|
||||
public contentUrl?: string;
|
||||
public customData?: {};
|
||||
public duration?: number;
|
||||
public hlsSegmentFormat?: HlsSegmentFormat;
|
||||
public posterUrl?: string;
|
||||
public title?: string;
|
||||
public vastAdsRequest?: VastAdsRequest;
|
||||
public whenSkippable?: number;
|
||||
|
||||
constructor(public id: string) {}
|
||||
}
|
||||
9
ext/src/shim/cast/media/classes/BreakStatus.ts
Normal file
9
ext/src/shim/cast/media/classes/BreakStatus.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
"use strict";
|
||||
|
||||
export default class BreakStatus {
|
||||
public breakClipId?: string;
|
||||
public breakId?: string;
|
||||
public currentBreakClipTime?: number;
|
||||
public currentBreakTime?: number;
|
||||
public whenSkippable?: number;
|
||||
}
|
||||
17
ext/src/shim/cast/media/classes/ContainerMetadata.ts
Normal file
17
ext/src/shim/cast/media/classes/ContainerMetadata.ts
Normal file
@@ -0,0 +1,17 @@
|
||||
"use strict";
|
||||
|
||||
import Image from "../../classes/Image";
|
||||
import MediaMetadata from "../classes/MediaMetadata";
|
||||
|
||||
import { ContainerType } from "../enums";
|
||||
|
||||
|
||||
export default class ContainerMetadata {
|
||||
public containerDuration?: number;
|
||||
public containerImages?: Image[];
|
||||
public sections?: MediaMetadata[];
|
||||
public title?: string;
|
||||
|
||||
constructor (public containerType: ContainerType
|
||||
= ContainerType.GENERIC_CONTAINER) {}
|
||||
}
|
||||
8
ext/src/shim/cast/media/classes/LiveSeekableRange.ts
Normal file
8
ext/src/shim/cast/media/classes/LiveSeekableRange.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
"use strict";
|
||||
|
||||
export default class LiveSeekableRange {
|
||||
constructor (public start?: number
|
||||
, public end?: number
|
||||
, public isMovingWindow?: boolean
|
||||
, public isLiveDone?: boolean) {}
|
||||
}
|
||||
@@ -5,6 +5,8 @@ import MediaInfo from "./MediaInfo";
|
||||
|
||||
export default class LoadRequest {
|
||||
public activeTrackIds: (number[] | null) = null;
|
||||
public atvCredentials?: string;
|
||||
public atvCredentialsType?: string;
|
||||
public autoplay: (boolean | null) = true;
|
||||
public currentTime: (number | null) = null;
|
||||
public customData: any = null;
|
||||
|
||||
@@ -4,17 +4,21 @@ import logger from "../../../../lib/logger";
|
||||
|
||||
import uuid from "uuid/v1";
|
||||
|
||||
import BreakStatus from "./BreakStatus";
|
||||
import EditTracksInfoRequest from "./EditTracksInfoRequest";
|
||||
import GetStatusRequest from "./GetStatusRequest";
|
||||
import LiveSeekableRange from "./LiveSeekableRange";
|
||||
import MediaInfo from "./MediaInfo";
|
||||
import PauseRequest from "./PauseRequest";
|
||||
import PlayRequest from "./PlayRequest";
|
||||
import QueueData from "./QueueData";
|
||||
import QueueInsertItemsRequest from "./QueueInsertItemsRequest";
|
||||
import QueueItem from "./QueueItem";
|
||||
import QueueReorderItemsRequest from "./QueueReorderItemsRequest";
|
||||
import QueueUpdateItemsRequest from "./QueueUpdateItemsRequest";
|
||||
import SeekRequest from "./SeekRequest";
|
||||
import StopRequest from "./StopRequest";
|
||||
import VideoInformation from "./VideoInformation";
|
||||
import VolumeRequest from "./VolumeRequest";
|
||||
|
||||
import Volume from "../../classes/Volume";
|
||||
@@ -96,18 +100,22 @@ export default class Media {
|
||||
});
|
||||
|
||||
public activeTrackIds: (number[] | null) = null;
|
||||
public breakStatus?: BreakStatus;
|
||||
public currentItemId: (number | null) = null;
|
||||
public customData: any = null;
|
||||
public currentTime: number = 0;
|
||||
public idleReason: (string | null) = null;
|
||||
public items: (QueueItem[] | null) = null;
|
||||
public liveSeekableRange?: LiveSeekableRange;
|
||||
public loadingItemId: (number | null) = null;
|
||||
public media: (MediaInfo | null) = null;
|
||||
public playbackRate: number = 1;
|
||||
public playerState: string = PlayerState.IDLE;
|
||||
public preloadedItemId: (number | null) = null;
|
||||
public queueData?: QueueData;
|
||||
public repeatMode: string = RepeatMode.OFF;
|
||||
public supportedMediaCommands: string[] = [];
|
||||
public videoInfo?: VideoInformation;
|
||||
public volume: Volume = new Volume();
|
||||
|
||||
|
||||
@@ -139,6 +147,16 @@ export default class Media {
|
||||
logger.info("STUB :: Media#editTracksInfo");
|
||||
}
|
||||
|
||||
public getEstimatedBreakClipTime () {
|
||||
logger.info("STUB :: Media#getEstimatedBreakClipTime");
|
||||
}
|
||||
public getEstimatedBreakTime () {
|
||||
logger.info("STUB :: Media#getEstimatedBreakTime");
|
||||
}
|
||||
public getEstimatedLiveSeekableRange () {
|
||||
logger.info("STUB :: Media#getEstimatedLiveSeekableRange");
|
||||
}
|
||||
|
||||
public getEstimatedTime (): number {
|
||||
if (this.currentTime === undefined
|
||||
|| this.#lastCurrentTime === undefined) {
|
||||
|
||||
@@ -1,15 +1,20 @@
|
||||
"use strict";
|
||||
|
||||
import Break from "./Break";
|
||||
import BreakClip from "./BreakClip";
|
||||
import GenericMediaMetadata from "./GenericMediaMetadata";
|
||||
import MovieMediaMetadata from "./MovieMediaMetadata";
|
||||
import MusicTrackMediaMetadata from "./MusicTrackMediaMetadata";
|
||||
import PhotoMediaMetadata from "./PhotoMediaMetadata";
|
||||
import TvShowMediaMetadata from "./TvShowMediaMetadata";
|
||||
|
||||
import TextTrackStyle from "./TextTrackStyle";
|
||||
import Track from "./Track";
|
||||
import UserActionState from "./UserActionState";
|
||||
import VastAdsRequest from "./VastAdsRequest";
|
||||
|
||||
import { StreamType } from "../enums";
|
||||
import { HlsSegmentFormat
|
||||
, HlsVideoSegmentFormat
|
||||
, StreamType } from "../enums";
|
||||
|
||||
|
||||
type Metadata =
|
||||
@@ -20,12 +25,22 @@ type Metadata =
|
||||
| TvShowMediaMetadata;
|
||||
|
||||
export default class MediaInfo {
|
||||
public atvEntity?: string;
|
||||
public breakClips?: BreakClip[];
|
||||
public breaks?: Break[];
|
||||
public customData: any = null;
|
||||
public contentUrl?: string;
|
||||
public duration: (number | null) = null;
|
||||
public entity?: string;
|
||||
public hlsSegmentFormat?: HlsSegmentFormat;
|
||||
public hlsVideoSegmentFormat?: HlsVideoSegmentFormat;
|
||||
public metadata: (Metadata | null) = null;
|
||||
public startAbsoluteTime?: number;
|
||||
public streamType: string = StreamType.BUFFERED;
|
||||
public textTrackStyle: (TextTrackStyle | null) = null;
|
||||
public tracks: (Track[] | null) = null;
|
||||
public userActionStates?: UserActionState[];
|
||||
public vmapAdsRequest?: VastAdsRequest;
|
||||
|
||||
constructor (
|
||||
public contentId: string
|
||||
|
||||
19
ext/src/shim/cast/media/classes/MediaMetadata.ts
Normal file
19
ext/src/shim/cast/media/classes/MediaMetadata.ts
Normal file
@@ -0,0 +1,19 @@
|
||||
"use strict";
|
||||
|
||||
import { MetadataType } from "../enums";
|
||||
|
||||
|
||||
export default class MediaMetadata {
|
||||
public queueItemId?: number;
|
||||
public sectionDuration?: number;
|
||||
public sectionStartAbsoluteTime?: number;
|
||||
public sectionStartTimeInContainer?: number;
|
||||
public sectionStartTimeInMedia?: number;
|
||||
public type: MetadataType;
|
||||
public metadataType: MetadataType;
|
||||
|
||||
constructor (type: MetadataType) {
|
||||
this.type = type;
|
||||
this.metadataType = type;
|
||||
}
|
||||
}
|
||||
18
ext/src/shim/cast/media/classes/QueueData.ts
Normal file
18
ext/src/shim/cast/media/classes/QueueData.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
"use strict";
|
||||
|
||||
import QueueItem from "./QueueItem";
|
||||
|
||||
import { RepeatMode } from "../enums";
|
||||
|
||||
|
||||
export default class QueueData {
|
||||
public shuffle = false;
|
||||
|
||||
constructor(public id?: string
|
||||
, public name?: string
|
||||
, public description?: string
|
||||
, public repeatMode?: RepeatMode
|
||||
, public items?: QueueItem[]
|
||||
, public startIndex?: number
|
||||
, public startTime?: number) {}
|
||||
}
|
||||
10
ext/src/shim/cast/media/classes/UserActionState.ts
Normal file
10
ext/src/shim/cast/media/classes/UserActionState.ts
Normal file
@@ -0,0 +1,10 @@
|
||||
"use strict";
|
||||
|
||||
import { UserAction } from "../enums";
|
||||
|
||||
|
||||
export default class UserActionState {
|
||||
public customData: any = null;
|
||||
|
||||
constructor (public userAction: UserAction) {}
|
||||
}
|
||||
6
ext/src/shim/cast/media/classes/VastAdsRequest.ts
Normal file
6
ext/src/shim/cast/media/classes/VastAdsRequest.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
"use strict";
|
||||
|
||||
export default class VastAdsRequest {
|
||||
public adsResponse?: string;
|
||||
public adTagUrl?: string;
|
||||
}
|
||||
10
ext/src/shim/cast/media/classes/VideoInformation.ts
Normal file
10
ext/src/shim/cast/media/classes/VideoInformation.ts
Normal file
@@ -0,0 +1,10 @@
|
||||
"use strict";
|
||||
|
||||
import { HdrType } from "../enums";
|
||||
|
||||
|
||||
export default class VideoInformation {
|
||||
constructor (public width: number
|
||||
, public height: number
|
||||
, public hdrType: HdrType) {}
|
||||
}
|
||||
@@ -1,5 +1,31 @@
|
||||
"use strict";
|
||||
|
||||
export enum ContainerType {
|
||||
GENERIC_CONTAINER
|
||||
, AUDIOBOOK_CONTAINER
|
||||
}
|
||||
|
||||
export enum HdrType {
|
||||
SDR = "sdr"
|
||||
, HDR = "hdr"
|
||||
, DV = "dv"
|
||||
}
|
||||
|
||||
export enum HlsSegmentFormat {
|
||||
AAC = "aac"
|
||||
, AC3 = "ac3"
|
||||
, MP3 = "mp3"
|
||||
, TS = "ts"
|
||||
, TS_AAC = "ts_aac"
|
||||
, E_AC3 = "e_ac3"
|
||||
, FMP4 = "fmp4"
|
||||
}
|
||||
|
||||
export enum HlsVideoSegmentFormat {
|
||||
MPEG2_TS = "mpeg2_ts"
|
||||
, FMP4 = "fmp4"
|
||||
}
|
||||
|
||||
export enum IdleReason {
|
||||
CANCELLED = "CANCELLED"
|
||||
, INTERRUPTED = "INTERRUPTED"
|
||||
@@ -20,6 +46,7 @@ export enum MetadataType {
|
||||
, TV_SHOW
|
||||
, MUSIC_TRACK
|
||||
, PHOTO
|
||||
, AUDIOBOOK_CHAPTER
|
||||
}
|
||||
|
||||
export enum PlayerState {
|
||||
@@ -29,6 +56,18 @@ export enum PlayerState {
|
||||
, BUFFERING = "BUFFERING"
|
||||
}
|
||||
|
||||
export enum QueueType {
|
||||
ALBUM = "ALBUM"
|
||||
, PLAYLIST = "PLAYLIST"
|
||||
, AUDIOBOOK = "AUDIOBOOK"
|
||||
, RADIO_STATION = "RADIO_STATION"
|
||||
, PODCAST_SERIES = "PODCAST_SERIES"
|
||||
, TV_SERIES = "TV_SERIES"
|
||||
, VIDEO_PLAYLIST = "VIDEO_PLAYLIST"
|
||||
, LIVE_TV = "LIVETV"
|
||||
, MOVIE = "MOVIE"
|
||||
}
|
||||
|
||||
export enum RepeatMode {
|
||||
OFF = "REPEAT_OFF"
|
||||
, ALL = "REPEAT_ALL"
|
||||
@@ -91,3 +130,10 @@ export enum TrackType {
|
||||
, AUDIO = "AUDIO"
|
||||
, VIDEO = "VIDEO"
|
||||
}
|
||||
|
||||
export enum UserAction {
|
||||
LIKE = "LIKE"
|
||||
, DISLIKE = "DISLIKE"
|
||||
, FOLLOW = "FOLLOW"
|
||||
, UNFOLLOW = "UNFOLLOW"
|
||||
}
|
||||
|
||||
@@ -1,16 +1,25 @@
|
||||
"use strict";
|
||||
|
||||
import AudiobookChapterMediaMetadata from "./classes/AudiobookChapterMediaMetadata";
|
||||
import AudiobookContainerMetadata from "./classes/AudiobookContainerMetadata";
|
||||
import Break from "./classes/Break";
|
||||
import BreakClip from "./classes/BreakClip";
|
||||
import BreakStatus from "./classes/BreakStatus";
|
||||
import ContainerMetadata from "./classes/ContainerMetadata";
|
||||
import EditTracksInfoRequest from "./classes/EditTracksInfoRequest";
|
||||
import GenericMediaMetadata from "./classes/GenericMediaMetadata";
|
||||
import GetStatusRequest from "./classes/GetStatusRequest";
|
||||
import LiveSeekableRange from "./classes/LiveSeekableRange";
|
||||
import LoadRequest from "./classes/LoadRequest";
|
||||
import Media from "./classes/Media";
|
||||
import MediaInfo from "./classes/MediaInfo";
|
||||
import MediaMetadata from "./classes/MediaMetadata";
|
||||
import MovieMediaMetadata from "./classes/MovieMediaMetadata";
|
||||
import MusicTrackMediaMetadata from "./classes/MusicTrackMediaMetadata";
|
||||
import PauseRequest from "./classes/PauseRequest";
|
||||
import PhotoMediaMetadata from "./classes/PhotoMediaMetadata";
|
||||
import PlayRequest from "./classes/PlayRequest";
|
||||
import QueueData from "./classes/QueueData";
|
||||
import QueueInsertItemsRequest from "./classes/QueueInsertItemsRequest";
|
||||
import QueueItem from "./classes/QueueItem";
|
||||
import QueueLoadRequest from "./classes/QueueLoadRequest";
|
||||
@@ -23,12 +32,20 @@ import StopRequest from "./classes/StopRequest";
|
||||
import TextTrackStyle from "./classes/TextTrackStyle";
|
||||
import Track from "./classes/Track";
|
||||
import TvShowMediaMetadata from "./classes/TvShowMediaMetadata";
|
||||
import UserActionState from "./classes/QueueItem";
|
||||
import VastAdsRequest from "./classes/VastAdsRequest";
|
||||
import VideoInformation from "./classes/VideoInformation";
|
||||
import VolumeRequest from "./classes/VolumeRequest";
|
||||
|
||||
import { IdleReason
|
||||
import { ContainerType
|
||||
, HdrType
|
||||
, HlsSegmentFormat
|
||||
, HlsVideoSegmentFormat
|
||||
, IdleReason
|
||||
, MediaCommand
|
||||
, MetadataType
|
||||
, PlayerState
|
||||
, QueueType
|
||||
, RepeatMode
|
||||
, ResumeState
|
||||
, StreamType
|
||||
@@ -37,24 +54,28 @@ import { IdleReason
|
||||
, TextTrackFontStyle
|
||||
, TextTrackType
|
||||
, TextTrackWindowType
|
||||
, TrackType } from "./enums";
|
||||
, TrackType
|
||||
, UserAction } from "./enums";
|
||||
|
||||
|
||||
export {
|
||||
// Enums
|
||||
IdleReason, MediaCommand, MetadataType, PlayerState
|
||||
, RepeatMode, ResumeState, StreamType, TextTrackEdgeType
|
||||
, TextTrackFontGenericFamily, TextTrackFontStyle, TextTrackType
|
||||
, TextTrackWindowType, TrackType
|
||||
ContainerType, HdrType, HlsSegmentFormat, HlsVideoSegmentFormat, IdleReason
|
||||
, MediaCommand, MetadataType, PlayerState, QueueType, RepeatMode, ResumeState
|
||||
, StreamType, TextTrackEdgeType, TextTrackFontGenericFamily
|
||||
, TextTrackFontStyle, TextTrackType, TextTrackWindowType, TrackType
|
||||
, UserAction
|
||||
|
||||
// Classes
|
||||
, EditTracksInfoRequest, GenericMediaMetadata, GetStatusRequest, LoadRequest
|
||||
, Media, MediaInfo, MovieMediaMetadata, MusicTrackMediaMetadata
|
||||
, PauseRequest, PhotoMediaMetadata, PlayRequest, QueueInsertItemsRequest
|
||||
, AudiobookChapterMediaMetadata, AudiobookContainerMetadata, Break, BreakClip
|
||||
, BreakStatus, ContainerMetadata, EditTracksInfoRequest, GenericMediaMetadata
|
||||
, GetStatusRequest, LiveSeekableRange, LoadRequest, Media, MediaInfo
|
||||
, MediaMetadata, MovieMediaMetadata, MusicTrackMediaMetadata, PauseRequest
|
||||
, PhotoMediaMetadata, PlayRequest, QueueInsertItemsRequest, QueueData
|
||||
, QueueItem, QueueLoadRequest, QueueRemoveItemsRequest
|
||||
, QueueReorderItemsRequest, QueueSetPropertiesRequest, QueueUpdateItemsRequest
|
||||
, SeekRequest, StopRequest, TextTrackStyle, Track
|
||||
, TvShowMediaMetadata, VolumeRequest
|
||||
, SeekRequest, StopRequest, TextTrackStyle, Track, TvShowMediaMetadata
|
||||
, UserActionState, VastAdsRequest, VideoInformation, VolumeRequest
|
||||
};
|
||||
|
||||
export const timeout = {
|
||||
|
||||
Reference in New Issue
Block a user