2016-09-06 6 views
0

Я пытаюсь интегрировать приложение JavaScript с API Google Chrome. Я посылаю customData в MediaInfo например так:Как получить пользовательские данные от Cast Reciever?

var mediaInfo = new chrome.cast.media.MediaInfo(src, type); 
mediaInfo.customData = {'key': 'value'} 
var loadRequest = new chrome.cast.media.LoadRequest(mediaInfo); 
this.apiSession.loadMedia(loadRequest, onMediaDiscovered, onCastError); 

Теперь я пытаюсь читать мои пользовательские данные, когда я присоединяюсь к существующему произнесению сессия:

var apiConfig = new chrome.cast.ApiConfig(
     sessionRequest, 
     sessionJoinedListener, 
     receiverListener); 

sessionJoinedListener: function(session) { 
    // how to read customData here? 
} 

Я осмотрел объект сеанса, и это свойства и дети, но в нем нет customData. У этого объекта есть session.media[0].customData, но он имеет значение null. Также я попробовал session.media[0].media, но у него также нет данных.

ответ

1

Основываясь на этом documentation, приложения всегда могут настраивать этот вид отправителя приемника с помощью customizedStatusCallback и включать под-состояния в поле customData. Это позволяет отправителю и получателю легко расширять медиа-протокол, не используя новое пространство имен с настраиваемыми сообщениями. Вы можете проверить этот связанный поток SO: How to get custom data from reciever

+0

Этот метод ненадежен. Он работает только по первому запросу. Если пользователь обновляет страницу, прикрепленная 'customData' теперь имеет значение null по неизвестной причине. –