Cast 框架提供的队列 API 支持创建 在网络上依序播放的内容项(如视频或音频流) 接收器。您可以对内容项队列进行编辑、重新排序、更新等操作 。
Web Receiver SDK 将维护队列并响应 只要队列中至少有一个当前处于活动状态(正在播放或 暂停)。发送者可以加入会话并向队列中添加内容。接收方 为队列项维护一个会话,直到最后一个项完成播放或 发送者停止播放并终止会话,或直到发送方停止播放 在接收设备上加载新队列。接收方不会维护任何 有关已终止队列的信息。当队列中的最后一项 则媒体会话结束,队列将消失。
创建和加载媒体队列项
在 iOS 中,媒体队列项在 Cast 框架中表示为
GCKMediaQueueItem
实例。
创建包含自适应内容的媒体队列项时,您可以将
以便播放器在播放媒体队列项目之前
在队列中前面的项播放完毕。如需详细了解预加载,请访问
该
网络接收器预加载指南。
设置项的自动播放 属性设置为 true,则允许网络接收器自动播放。例如: 您可以使用构建器模式创建媒体队列项,如下所示:
<ph type="x-smartling-placeholder">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
属性 - 当前预加载的商品的 ID(如果有)。loadingItemID
属性 - 当前加载项的 ID,currentItemID
属性 - 当前队列项的 ID(如果有)。queueItemCount
method - 返回播放队列中的项目数。queueItemAtIndex
method - 返回播放队列中指定索引处的项。
将这些成员与其他媒体状态成员结合使用,
了解队列状态和队列中的项。除了
来自网络接收器的媒体状态更新,您可以监听
实现 -[remoteMediaClientDidUpdateQueue:]
的
GCKRemoteMediaClientListener
。
修改队列
要处理队列中的项,请使用
GCKRemoteMediaClient
。
您有多个 API利用这些元素,您可以将一组项加载到新队列中,
将项目插入现有队列、更新
使某个项在队列中快进或后退、设置
队列本身(例如,更改 repeatMode
,以便选择下一个
项)、从队列中移除项,并对队列中的项重新排序。