gpt4 book ai didi

android - MediaControllerCompat.Callback onAudioInfoChanged永远不会被调用

转载 作者:行者123 更新时间:2023-12-03 01:59:27 26 4
gpt4 key购买 nike

我正在使用自己的音量 Controller :

        xenoVolumeProvider = new VolumeProviderCompat(VolumeProviderCompat.VOLUME_CONTROL_RELATIVE, maxXenoVolume, XenoAmp.getAndSetPref("xenoVol", maxXenoVolume / 2)) {
@Override
public void onAdjustVolume(int direction) {
super.onAdjustVolume(direction);
actionSetVolumeByTick(direction);
//Logger.d("Wart vol=" + mSession.getController().getPlaybackInfo().getCurrentVolume());
}
};
mSession.setPlaybackToRemote(xenoVolumeProvider);

尽管它(出人意料地)按预期工作(除了Android 4上的一个导致FC的错误,不足为奇),MediaControllerCompat.Callback的onAudioInfoChanged从未被调用,尽管其他所有回调都可以。

由于Google的MediaController / MediaSession文档不出所料(不足为奇),也许是我缺少了一些东西。也许我应该在每次音量变化时以某种方式自己调用onAudioInfoChanged,但是如何?

有这个回调,可以正常工作:
        xenoVolumeProvider.setCallback(new VolumeProviderCompat.Callback() {
@Override
public void onVolumeChanged(VolumeProviderCompat volumeProvider) {
// maybe I can call onAudioInfoChanged from here?
}
});

但是又如何从那里调用MediaControllerCompat.Callback的onAudioInfoChanged?有任何想法吗?

最佳答案

您的onAdjustVolume()指示已提交音量调整请求-要获取回调,请确保从onAdjustVolume()方法内调用setCurrentVolume()。根据Javadoc,该方法:

Set the current volume and notify the system that the volume has been changed.



注意:根据 setCallback()上的文档,该文件在支持库内部使用-您不应该设置自己的回调,因为它将覆盖调用 MediaSessionCompat时设置的 setPlaybackToRemote()的回调,导致回调不会传播到任何 Controller 。

关于android - MediaControllerCompat.Callback onAudioInfoChanged永远不会被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32921812/

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