Отправитель Google Cast Chrome - обратный вызов при изменении очереди - PullRequest
0 голосов
/ 23 декабря 2018

Я разрабатываю приложение для приведения в действие в 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 запутывает их код, поэтому это практически невозможнодля отладки.

Есть какие-нибудь подсказки?

...