Приемник 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, я могу выполнить несколько запросов правильно.