【问题标题】:Android - Unable to MUTE Audio in ChromeCastAndroid - 无法在 ChromeCast 中静音音频
【发布时间】:2015-06-12 05:55:25
【问题描述】:

我正在我的一个应用程序中实现投射功能,并尝试使从发送者应用程序投射到默认接收者应用程序的音频静音。

在 RemoteMediaPlayer 对象上使用“setStreamVolume()”api 来静音,见下面的代码:

remoteMediaPlayer.setStreamVolume(googleApiClient, 0).setResultCallback(
                    new ResultCallback<RemoteMediaPlayer.MediaChannelResult>() {
                        @Override
                        public void onResult( MediaChannelResult result) {
                            Status status = result.getStatus();
                            Log.d(TAG, "MUTE status:"+status);
                        }
                    });

但观察到,它在结果回调中返回 2100 (STATUS_FAILED) 状态代码,并且无法在接收器应用程序中静音。

请建议...

【问题讨论】:

    标签: android chromecast


    【解决方案1】:

    我强烈建议不要使用 Stream Volume,而是使用 Device Volume。对应的静音方法可以在here找到。

    【讨论】:

    • 感谢您的回复... 观察到每次使用设备音量方法(如 setMute()、setVolume())时都会显示音量条。我不想看到每次在 chromecast 中执行静音/UN-mute 事件时都显示这些音量控件,这就是我尝试使用流音量方法的替代方法的原因。即使我很想知道 2100 失败状态码背后的原因,为什么流卷方法不起作用,请您告诉我失败通知的原因吗?
    • 没有看到你的代码,恐怕我无法告诉你为什么它不起作用。为什么不想在电视上看到音量条?对于正在改变音量的用户来说,这是一个非常有用的 UI 反馈。
    • 客户要求我们隐藏音量控制。这就是我尝试不同方法在不显示音频控件的情况下静音的原因。关于编码部分,应用程序没有太多复杂的代码,我在 joinApplication() 方法连接结果回调中实例化 RemoreMediaPlayer obj。实际上,我的应用正在加入 YouTube 演员会话以控制视频/音频播放。在连接结果回调中获得成功状态代码后,我将在 chrome-cast 中识别音频/视频轨道,并根据该音频/视频轨道可用的事件时间代码应用静音/取消静音事件。
    • 我通过启动默认接收器应用程序做了另一个示例应用程序,我的意思是使用了 launchApplication() 方法并在接收器中加载了一些音轨。并在 RemoteMediaPlayer 对象上执行 setStreamVolume() 方法,这次我得到了成功响应,并且在执行静音事件时我没有看到音频图标。这意味着如果应用程序加入另一个应用程序会话,setStreamVolume() 将不起作用,对吗?还是我们有其他失败状态的原因。
    • 如果您试图控制其他人的应用程序(在这种情况下是 YouTube),那么所有的赌注都会被取消;您不能指望任何标准/通用方法可供您使用。
    猜你喜欢
    • 2019-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-27
    • 1970-01-01
    • 1970-01-01
    • 2015-01-29
    • 1970-01-01
    相关资源
    最近更新 更多