Приемник Chromecast CAF с Live+DVR: длительность отправки и обновления положения

Я пытаюсь создать пользовательский CAF-приемник для воспроизведения прямых трансляций HLS с поддержкой DVR. Я хотел бы использовать интерфейс по умолчанию, а также быть совместимым с интерфейсом отправителя по умолчанию (DefaultExpandedMediaControls).

Моя текущая реализация мало чем отличается от исходного базового приемника CAF ( https://github.com/googlecast/BasicReceiverCAF), кроме того факта, что я использую player.getLiveSeekableRange() обновить продолжительность на MEDIA_STATUS как это:

player.setMessageInterceptor(
    cast.framework.messages.MessageType.MEDIA_STATUS,
    status => {
        let range = player.getLiveSeekableRange()
        if (range) {
            if (status.media) {
                status.media.duration = range.end - range.start
            }
        }
        return status;
    }
)

Использование очень простого приложения отправителя с пользовательским интерфейсом по умолчанию (GCKCastContext.sharedInstance().presentDefaultExpandedMediaControls()) Я вижу, что продолжительность указана на стороне отправителя. Длительность даже обновляется с течением времени (по мере роста живого потока).

Однако, когда я пытаюсь использовать пользовательский интерфейс отправителя, текущая позиция не обновляется: позиция пользовательского интерфейса отправителя продолжает расти, как будто поиск не производился, и индикатор выполнения получателя не сжимается до правильной позиции. СМИ ищут правильно и MEDIA_STATUS события содержат правильную информацию о времени. Я также заметил, что могу искать только один раз за сеанс. Как будто поиск никогда не заканчивается.

Если я буду искать программно с player.seek(number) используя консоль инспектора Google Chrome, я могу выполнить несколько запросов правильно.

0 ответов

Другие вопросы по тегам