Я разрабатываю приложение для приведения в действие в Chrome, используя функцию очереди, и мне нужно знать, как получить любые обратные вызовы при загрузке следующего или предыдущего элемента в очереди, поскольку обратные вызовы удаленного игрока не генерируютпосле загрузки второго видео в очереди.
Документация Google для платформы Cast ужасна, и я искал по всему API и ничего не нашел.
Вот выдержки из моегокод (Typescript), в частности, одноэлементный класс:
private _context: cast.framework.CastContext
private _session: cast.framework.CastSession
private _mediaSession: chrome.cast.Session
private _player: cast.framework.RemotePlayer
private _controller: cast.framework.RemotePlayerController
private _mediaQueue: chrome.cast.media.QueueItem[] = []
Очередь добавляемого элемента
queueItem(mediaUri: string, mediaType: string, metaData?: AbstractMetaData) {
const mediaInfo = new chrome.cast.media.MediaInfo(mediaUri, mediaType)
if (!!metaData)
mediaInfo.metadata = metaData
const queueItem = new chrome.cast.media.QueueItem(mediaInfo)
this._mediaQueue.push(queueItem)
}
Запуск очереди
startQueue() {
const request = new chrome.cast.media.QueueLoadRequest(this._mediaQueue)
this._mediaSession.queueLoad(request, this.onMediaLoaded, err => {
console.error(err)
})
}
Обратный вызов приочередь загружена.Эти свойства не обновляются, когда очередь переходит к следующему видео, поэтому я не могу воспроизвести / приостановить и иным образом управлять воспроизведением мультимедиа после первого видео.
После отладки объект _player
обновляетсяisMediaConnected
в false, так что похоже, что его нужно как-то обновить, но я потерялся.
private onMediaLoaded() {
this._player = new cast.framework.RemotePlayer()
this._controller = new cast.framework.RemotePlayerController(this._player)
this._controller.addEventListener(cast.framework.RemotePlayerEventType.ANY_CHANGE, this.onPlayerEvent)
}
Все усложняется тем, что Google запутывает их код, поэтому это практически невозможнодля отладки.
Есть какие-нибудь подсказки?