gpt4 book ai didi

android - 如何从 Cast 设备接收状态更新

转载 作者:行者123 更新时间:2023-11-29 17:49:18 29 4
gpt4 key购买 nike

我已经为我的 Android 音频流应用程序开发了与 Chromecast 的集成。对于接收器,我正在使用 Chromecast developer page 中描述的 Styled Media Receiver .大多数情况下一切正常,但是,我在播放期间没有收到来自 Cast 设备的 onStatusUpdated() 调用。当我启动媒体流时,它开始播放并发送带有 IDLE MediaStatus 的状态更新。一旦它开始播放,我就会收到一个带有 PLAYING MediaStatus 的 onStatusUpdated() 调用。在此之后,我没有收到任何更新,这意味着我无法使用音频剪辑的当前搜索位置更新我的应用程序 UI。

为了解决这个问题,我基本上是在每次获得 PLAYING MediaStatus 时运行一个 Runnable。这是伪代码:

public void onStatusUpdated() {
...
if (mMediaStatus == MediaStatus.PLAYER_STATE_PLAYING) {
mHandler.postDelayed(mUpdateProgressRunnable, 1000);
...

}

mUpdateProgressRunnable = new Runnable() {
@Override
public void run() {
if (mRemoteMediaPlayer != null && mApiClient != null) {
mRemoteMediaPlayer.requestStatus(mApiClient);
}
}
}

这样做正确吗?为什么 Receiver 不自己发送更新?这似乎工作正常,但令我惊讶的是我无法在网上找到任何关于正确方法的信息。

感谢任何帮助!谢谢。

最佳答案

您需要有一个线程来更新搜索栏。但是您不需要为视频中的当前位置显式执行 requestStatus。你应该调用

RemoteMediaPlayer.getApproximateStreamPosition

这由 Cast SDK 管理,是跟上接收器媒体播放进度的有效方式。

关于android - 如何从 Cast 设备接收状态更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24210114/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com