Платформа Cast предоставляет API очередей, которые поддерживают создание списков элементов контента, таких как видео- или аудиопотоки, для последовательного воспроизведения на веб-приемнике. Очередь элементов контента можно редактировать, переупорядочивать, обновлять и т.д.
SDK веб-приемника поддерживает очередь и отвечает на операции в очереди, пока в очереди есть хотя бы один активный элемент (воспроизводимый или приостановленный). Отправители могут присоединиться к сеансу и добавлять элементы в очередь. Получатель поддерживает сеанс для элементов очереди до тех пор, пока последний элемент не завершит воспроизведение или отправитель не остановит воспроизведение и не завершит сеанс, или пока отправитель не загрузит новую очередь в получатель. По умолчанию получатель не сохраняет никакой информации о прекращенных очередях. Как только последний элемент в очереди завершается, сеанс мультимедиа завершается, и очередь исчезает.
Создание и загрузка элементов очереди мультимедиа
В iOS элемент медиа-очереди представлен в платформе Cast как экземпляр GCKMediaQueueItem
. Когда вы создаете элемент очереди мультимедиа с адаптивным содержимым, вы можете установить время предварительной загрузки, чтобы проигрыватель мог начать буферизацию элемента очереди мультимедиа до того, как элемент, стоящий перед ним в очереди, завершит воспроизведение. Подробнее о предварительной загрузке см. в руководстве по предварительной загрузке веб-приемника .
Установка атрибута autoplay элемента в значение true позволяет веб-приемнику воспроизводить его автоматически. Например, вы можете использовать шаблон построителя для создания элемента очереди мультимедиа следующим образом:
let builder = GCKMediaQueueItemBuilder.init() builder.mediaInformation = mediaInformation builder.autoplay = true builder.preloadTime = 8.0 let newItem = builder.build()
GCKMediaQueueItemBuilder *builder = [[GCKMediaQueueItemBuilder alloc] init]; builder.mediaInformation = self.mediaInformation; builder.autoplay = YES; builder.preloadTime = 8.0; GCKMediaQueueItem *newItem = [builder build];
Загрузите массив элементов очереди мультимедиа в очередь, используя соответствующий метод queueLoadItems
класса GCKRemoteMediaClient
.
Получить обновление статуса очереди мультимедиа
Когда веб-приемник загружает элемент очереди мультимедиа, он присваивает элементу уникальный идентификатор, который сохраняется на протяжении сеанса (и срока службы очереди). Вы можете узнать статус очереди, указав, какой элемент в данный момент загружен (возможно, он не воспроизводится), загружается или предварительно загружен. Вы также можете получить упорядоченный список всех элементов в очереди. Класс GCKMediaStatus
предоставляет следующую информацию о состоянии:
- Свойство
preloadedItemID
— идентификатор элемента, который в данный момент предварительно загружен, если таковой имеется. - Свойство
loadingItemID
— идентификатор элемента, который в данный момент загружается, - Свойство
currentItemID
— идентификатор текущего элемента очереди, если таковой имеется. -
queueItemCount
— возвращает количество элементов в очереди воспроизведения. -
queueItemAtIndex
— возвращает элемент по указанному индексу в очереди воспроизведения.
Используйте эти элементы вместе с другими членами статуса мультимедиа, чтобы информировать ваше приложение о состоянии очереди и элементах в очереди. Помимо обновлений статуса мультимедиа из веб-приемника, вы можете прослушивать изменения в очереди, реализовав -[remoteMediaClientDidUpdateQueue:]
из GCKRemoteMediaClientListener
.
Редактировать очередь
Для работы с элементами в очереди используйте методы очереди GCKRemoteMediaClient
. у вас есть несколько API. Они позволяют загружать массив элементов в новую очередь, вставлять элементы в существующую очередь, обновлять свойства элементов в очереди, выполнять переход элемента вперед или назад в очереди, устанавливать свойства самой очереди (например, , измените repeatMode
, который выбирает следующий элемент), удалите элементы из очереди и измените порядок элементов в очереди.