从Androids Chromecast SDK注册MinimalMediaRouteProvider / MediaRouteButton时,我们会得到一个标准对话框,用于连接现有的Cromecast设备。连接到设备后,同一对话框还提供了使用可拖动搜索栏设置音量的方法。我无法将此卷搜索栏的位置与已在Chromecast设备中设置的实际音量同步。
作为注册MinimalMediaRouteProvider的一部分,我们提供了com.google.cast.MediaRouteAdapter实现。当用户拖动上面的卷seekBar时,将调用此接口的onSetVolume(卷)。这为我们提供了一种使用messageStream.setVolume(volume)来更新连接的chromecast通道音量级别的方法。
问题在于,一旦我们更新了卷,就无法告知MinimalMediaRouteProvider UI卷已更改,因此它可以相应地定位自己 - 当前它始终将卷显示为0.。
通知MinimalMediaRouteProvider有关当前音量级别以便更新其音量UI的正确方法是什么?
查看支持库7中包含的MediaRoute示例,似乎有一种方法可以创建MediaRouteDescriptor,在那里更新卷,然后将其传回给MediaRouteProvider,但是目前还不是很清楚如何在Chromecast / MinimalMediaRouteProvider的内容。
答案 0 :(得分:1)
您可以致电MediaRouteStateListener.onVolumeChanged()
更新音量搜索栏。
我在这里有一个更详细的答案: https://stackoverflow.com/a/18867128/1334870
答案 1 :(得分:0)
立即从VideoCastManager获取音量:
mVolume = (int) (mCastManager.getVolume() * 100) // cast volume is double
要在接收器中接收基于系统的音量更改(即屏幕音量滑块弹出窗口,其他连接的设备更改音量),您需要在控制器活动中添加演员消费者:< / p>
private VideoCastConsumerImpl mCastConsumer = new VideoCastConsumerImpl() {
public void onVolumeChanged(double volume, boolean isMute)
{
mVolumeSeekBar.setProgress((int) (volume *100));
}
};
更多详情: