Chromecast - блокировать loadMedia до тех пор, пока не вернется предыдущий

Я пишу приложение для iOS, которое использует хромкаст для создания серии изображений. Когда пользователь нажимает на правый край текущего изображения, приложение отображает следующее изображение, а следующее изображение отображается на большом экране. Однако, если пользователь нажимает достаточно быстро и вызывает третье изображение до того, как второе изображение появится на большом экране, второе изображение, как только оно появится, останется там, даже если третье изображение появится на устройстве. Из SDK Google Cast видно, что все запросы на кастинг поставлены в очередь, а третий должен появиться автоматически. Значит ли это, что я должен вручную ставить запросы в очередь на стороне отправителя?


person ljiatu    schedule 30.03.2014    source источник


Ответы (1)


Я предполагаю, что ваши изображения доступны на сервере (который также может быть вашим телефоном). Какой ресивер вы используете? Какого поведения вы ожидаете? Если, например, вам нужно увидеть все изображения, независимо от того, как быстро вы их транслируете, ваш приемник должен поставить в очередь URL-адреса изображений, а когда они полностью загружены, загрузить следующее и т. д. Если вы ожидаете пропустить предыдущее images, если создается новый, ваш получатель должен отбрасывать предыдущие запросы, как только поступает новый.

Вы также можете поставить их в очередь на стороне отправителя (особенно для первого сценария), и ваш отправитель должен слушать «изображение полностью загружено, поэтому отправьте следующее), но это не оптимально, поскольку

  • ваше приложение создает лучший опыт, если следующее изображение загружается за кадром на приемник, пока отображается первое, чтобы оно могло быстро перейти к следующему и
  • Вероятно, вы хотите создать впечатление, что если вы поставите несколько фотографий в очередь, ваше приложение сможет воспроизвести их на телевизоре, даже если ваш телефон отключится (актуально только в том случае, если изображения обслуживаются с отдельного сервера).

Еще один фактор, который следует учитывать, — это то, что вы ожидаете, если второе устройство будет подключено к вашему Chromecsst, пока первое транслирует; хотите ли вы, чтобы второй мог «участвовать» в деятельности и снимать роли, а или нет.

Несмотря на это, в нашем репозитории github есть пример кода, который показывает простой плейлист для видео (в очереди на ресивере).

person Ali Naddaf    schedule 30.03.2014
comment
Я использую SMR, потому что у меня нет опыта работы с HTML/Javascript, и у меня очень мало времени. Разве очередь SMR не должна ставить в очередь все запросы и обрабатывать их один за другим? - person ljiatu; 30.03.2014
comment
Если SMR относится к Styled Media Receiver, то в этот приемник не встроена очередь. - person Ali Naddaf; 30.03.2014
comment
Но в API GCKMediaControlChannel для loadMedia: сказано, что он загружается, ставится в очередь (в конце очереди) и, при необходимости, запускает воспроизведение нового элемента мультимедиа. К чему относится эта очередь? - person ljiatu; 30.03.2014
comment
Если написано, что на стороне iOS, то неверно, нет механизма очередей; Я зарегистрирую внутреннюю ошибку, чтобы исправить документацию. - person Ali Naddaf; 31.03.2014
comment
Итак, я должен переключиться на пользовательский приемник, верно? - person ljiatu; 31.03.2014
comment
Если вы хотите иметь очередь, да; это правильный подход. Затем вы можете решить, хотите ли вы, чтобы ваша очередь находилась в памяти или сохранялась в облаке и т. д. - person Ali Naddaf; 31.03.2014