【问题标题】:How to listen to progress on Google Cast in iOS如何在 iOS 中收听 Google Cast 的进度
【发布时间】:2019-04-12 20:15:12
【问题描述】:

如何在 iOS 中收听 Google Cast 的进度? 我已经在基于https://github.com/googlecast/CastVideos-ios 的应用中实现了演员支持,但我不想使用他们的 GCKUIExpandedMediaControlsViewController 类来控制播放。

我在 GCKCastSession 的 GCKRemoteMediaClient 中添加了 GCKRemoteMediaClientListener。它调用了

public func remoteMediaClient(_ client: GCKRemoteMediaClient, didUpdate mediaStatus: GCKMediaStatus?) {
        print("position: \(mediaStatus?.streamPosition)")
    }

但它每 10 秒调用一次,我希望每秒都取得进展。有什么办法吗?还是我必须实现自己的计时器并每秒检查当前流位置?

谢谢

【问题讨论】:

  • 嗨@vandzi。我通过创建一个检查媒体流位置的计时器尝试了您建议的解决方案。但是属性self.mediaClient?.mediaStatus?.streamPosition只有在调用didUpdate的时候才会更新,所以每秒读取这个属性是没有效果的。您是否成功获得了更高的刷新率?
  • @Martin 我用这个 var playPosition = self.castMediaController.lastKnownStreamPosition
  • 谢谢vandzi。供您参考,我还找到了方法:mediaClient.approximateStreamPosition(),它估计两个状态更新之间的流位置。

标签: ios swift google-cast google-cast-sdk


【解决方案1】:

和你的问题一样。在尝试找到该问题的解决方案后,我使用GCKUIMediaController 处理进度计时器。

_mediaController = [[GCKUIMediaController alloc] init];
_mediaController.playPauseToggleButton = _playButton;

_mediaController.nextButton = _nextButton;
_mediaController.previousButton = _previousButton;
_mediaController.streamPositionSlider = _timeSlider;
_mediaController.streamPositionLabel = _playedTimeLabel;
_mediaController.streamDurationLabel = _durationTimeLabel;
_mediaController.delegate = self;

上面的代码片段是一个我认为可以帮助你的例子,我已经将它用于我的项目。

【讨论】:

  • 我在这里遇到了问题,streamPositionLabel 和 streamDurationLabel 按预期工作,但 streamPositionSlider 没有,它正在加载视频实际持续时间的一半,您知道为什么会这样吗正在发生吗?
  • 嗨@Jalil,跟随documents,也许你不能用它做任何事情,我猜问题来自wifi连接,因为你的应用程序和接收器(Chromecast)通过wifi通信,有时连接不好,会发生问题。
【解决方案2】:

建议您使用 SDK 提供的小部件。它们已经过优化,可以有效地管理媒体状态。您可以通过多种方式为您的应用自定义和标记这些小部件。

【讨论】:

  • 谢谢,但这不是我的解决方案。我通过每秒运行计时器并取得进展来解决它
  • 出于性能原因,我们不推荐您的方法。
  • 那么如果我不能使用sdk提供的widget怎么办呢?有没有小部件源代码?我看到小部件正在显示时间,那么如果不是每秒钟都拉动,它们是如何做到的呢?有听众吗?
  • @LeonNicholls 作为 Google 工程师,您能回答 vandzi 的评论吗?说“不可能”之类的事件?
猜你喜欢
  • 1970-01-01
  • 2018-03-21
  • 1970-01-01
  • 2021-03-27
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
  • 2015-01-25
  • 2019-01-16
相关资源
最近更新 更多