我有一个用于视频流的iOS发送器应用程序,该应用程序支持排队并使用skipPrevious和skipNext按钮在队列中的视频之间向前和向后跳过。该应用程序可与google cast sdk v4.3.3和v4.3.4一起使用,但我需要更新sdk以支持iOS 13的更改。当我将sdk更新到v4.4.4时,即使我既可以在接收器上看到也可以通过在发送器应用程序中看到队列中有项目,但ExpandedMediaControlsViewController上的skipPrevious和skipNext按钮类型始终显示为灰色。在sdk v4.3.5和更高版本的所有版本中,按钮均显示为灰色。
我查看了Google Chromecast开发人员文档,并且不建议使用skipPrevious和skipNext按钮类型,并说如果队列中有内容,它们应该自动更新。我尝试修改Google的iOS发送器应用程序教程代码,以将30秒的ffw和rwd按钮更改为“跳过”按钮,并且在将项目添加到队列并播放后具有相同的结果。
关于3月在此处创建的类似问题,还有另一个未解决的问题:skipNext skipPrevious Google Cast变灰了
我在我的castViewController类内部使用了一个更新函数,将expandedMediaControls更改为skipPrevious和skipNext类型。当我的castViewController初始化时,我调用此方法
private func updatePlayerMediaControls() {
GCKCastContext.sharedInstance().defaultExpandedMediaControlsViewController.setButtonType(.skipPrevious, at: 1)
GCKCastContext.sharedInstance().defaultExpandedMediaControlsViewController.setButtonType(.skipNext, at: 2)
}
Run Code Online (Sandbox Code Playgroud)
我使用遵循此逻辑的函数来投射视频或将视频添加到队列中。在将视频添加到演员表之后,我会立即通过将bool设置为true将下一个视频添加到队列中。
func loadSelectedItem(_ media: VideoMediaInformation, byAppending appending: Bool) {
if let remoteMediaClient = sessionManager.currentCastSession?.remoteMediaClient {
let mediaQueueItemBuilder = GCKMediaQueueItemBuilder()
mediaQueueItemBuilder.mediaInformation = media.mediaInfo
mediaQueueItemBuilder.autoplay = true
mediaQueueItemBuilder.preloadTime = 1.0
let queueOptions = GCKMediaQueueLoadOptions()
queueOptions.playPosition = media.currentTime ?? 0.0
if appending {
let request = remoteMediaClient.queueInsert(mediaQueueItemBuilder.build(), beforeItemWithID: kGCKMediaQueueInvalidItemID)
request.delegate = self
} else {
let request = …Run Code Online (Sandbox Code Playgroud)