Android 从Chromecast接收器获取静音事件的正确回调是什么?
我遇到了这样一个问题:当两个设备连接到同一个cast会话时,当从设备1调用Android 从Chromecast接收器获取静音事件的正确回调是什么?,android,chromecast,google-cast,Android,Chromecast,Google Cast,我遇到了这样一个问题:当两个设备连接到同一个cast会话时,当从设备1调用BaseCastManager.setDeviceMute()时,设备2不会收到MediaCallback.onRouteEvolumeChanged() 正确的方法是什么?可能有不同的回调吗 这里是最终被称为的 /** * Mutes or un-mutes the device volume. * * @throws CastException * @throws NoConnectionException
BaseCastManager.setDeviceMute()
时,设备2不会收到MediaCallback.onRouteEvolumeChanged()
正确的方法是什么?可能有不同的回调吗
这里是最终被称为的
/**
* Mutes or un-mutes the device volume.
*
* @throws CastException
* @throws NoConnectionException
* @throws TransientNetworkDisconnectionException
*/
public final void setDeviceMute(boolean mute) throws CastException,
TransientNetworkDisconnectionException, NoConnectionException {
checkConnectivity();
try {
Cast.CastApi.setMute(mApiClient, mute);
} catch (IOException e) {
throw new CastException("setDeviceMute", e);
} catch (IllegalStateException e) {
throw new NoConnectionException("setDeviceMute()", e);
}
}
下面是我的听众:
private class MediaCallBack extends android.support.v7.media.MediaRouter.Callback {
@Override
public void onRouteVolumeChanged(MediaRouter router,
RouteInfo route) {
super.onRouteVolumeChanged(router, route);
onVolumeChanged(route.getVolume());
}
}
您需要收听以下内容的回调: 已更改卷上的公共无效() 当设备的音量或静音状态更改时调用
您需要收听以下内容的回调: 已更改卷上的公共无效() 当设备的音量或静音状态更改时调用
由于您使用的是Cast Companion Library,因此可以通过扩展
VideoCastConsumerImpl
,覆盖该方法并将其注册到VideoCastManager
(不再需要时取消注册)来使用回调VideoCastConsumer#onVolumeChanged(双值,布尔isMute)
:
由于您使用的是Cast Companion Library,因此可以通过扩展
VideoCastConsumerImpl
,覆盖该方法并将其注册到VideoCastManager
(不再需要时取消注册)来使用回调VideoCastConsumer#onVolumeChanged(双值,布尔isMute)
:
请删除您的其他帖子,似乎与此帖子相同请删除您的其他帖子,似乎与此帖子相同这是我当前正在做的事情,但当我们将接收器静音时,不会触发onVolumeChanged。根据您发布的内容,您没有这样做;您正在使用MediaRouter.Callback而不是Cast.Listener(或者使用CCL,这相当于一件事)进行监听。还有一个问题:如果你正在使用CCL,不要试图注册直接播放事件,使用CCL的回调和APIs。这是我目前正在做的,但是当我们使接收器静音时,onVolumeChanged不会被触发。从你发布的内容来看,你没有这样做;您正在使用MediaRouter.Callback而不是Cast.Listener(或者使用CCL,这相当于一件事)进行监听。还有一个问题:如果您正在使用CCL,不要试图注册来直接转换事件,请使用CCL的回调和API
VideoCastConsumer myConsumer = new VideoCastConsumerImpl() {
void onVolumeChanged(double value, boolean isMute) {
// do as you wish here
}
}
VideoCastManager.getInstance().addVideoCastConsumer(myConsumer);