Я использую свой собственный контроллер громкости:MediaControllerCompat.Callback никогда onAudioInfoChanged не вызывается
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, Unsurprisingly) MediaControllerCompat. Callback's onAudioInfoChanged никогда не вызывается, хотя все остальные обратные вызовы.
Поскольку документация Google MediaController/MediaSession (неудивительно) несуществующая, возможно, я что-то пропустил. Может быть, мне нужно как-то вызвать onAudioInfoChanged самостоятельно при каждом изменении тома, но КАК?
Там в этот обратный вызов, который работает:
xenoVolumeProvider.setCallback(new VolumeProviderCompat.Callback() {
@Override
public void onVolumeChanged(VolumeProviderCompat volumeProvider) {
// maybe I can call onAudioInfoChanged from here?
}
});
, но затем снова, как бы я называю onAudioInfoChanged MediaControllerCompat.Callback от туда? Есть идеи?
Ну, подозревая, что он работает таким образом, setCurrentVolume() вызывается actionSetVolumeByTick (направление), и громкость контроллера установлена правильно (плюс он появляется на экране, когда я устанавливаю флаг для отображения GUI), но я было бы просто получить уведомление о том, что объем был изменен, потому что для этого я использую свой собственный показатель. OnAudioInfoChanged никогда не вызывается. Должен ли я использовать любой другой обратный вызов? – ssuukk
Просто чтобы подтвердить, какую версию библиотеки поддержки вы используете? Пока вы не используете 'setCallback()', поведение по умолчанию 'MediaSessionCompat' должно быть перенаправлено на ваш MediaController – ianhanniballake
. Я действительно не могу позволить себе использовать какие-либо версии, кроме лучших (предположим почему? ...) 23.0.1, конечно. Я только setCallback на моем m \ MediaController и моем VolumeProviderCompat. Какой обратный вызов - нет-нет? – ssuukk