在 Android 中播放我的应用程序语音指导时如何降低音乐音量,然后再次提高音乐音量?
How lower music volume on playing my app voice guidance in Android and after that increase music again?
我正在开发一个 android 地图应用程序,它与 Waze 或任何其他应用程序一样使用语音指导来引导人们到达目的地。
我的问题是如果用户播放音乐his/her phone 音乐音量降低和语音提示播放音量和完成引导用户后音乐音量再次增加并获得扬声器的焦点?
这可以解决吗?我搜索了很多并看到了它的一些实现,但其中 none 在这种特殊情况下帮助了我。
提前谢谢大家。
AudioManager am = (AudioManager)getContext().getSystemService(AUDIO_SERVICE);
mp = new android.media.MediaPlayer();
mp.setDataSource("/data/data/" + getContext().getPackageName() + "/rasa.wav");
mp.prepare();
mp.start();
AudioManager.OnAudioFocusChangeListener focusChangeListener =
focusChange -> {
};
int result = am.requestAudioFocus(focusChangeListener,
AudioManager.STREAM_MUSIC,
AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK);
if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
mp = new android.media.MediaPlayer();
mp.setOnCompletionListener(mediaPlayer -> {
am.abandonAudioFocus(focusChangeListener);
});
mp.setDataSource("/data/data/" + getContext().getPackageName() + "/rasa.wav");
mp.prepare();
mp.start();
}
我正在开发一个 android 地图应用程序,它与 Waze 或任何其他应用程序一样使用语音指导来引导人们到达目的地。
我的问题是如果用户播放音乐his/her phone 音乐音量降低和语音提示播放音量和完成引导用户后音乐音量再次增加并获得扬声器的焦点?
这可以解决吗?我搜索了很多并看到了它的一些实现,但其中 none 在这种特殊情况下帮助了我。
提前谢谢大家。
AudioManager am = (AudioManager)getContext().getSystemService(AUDIO_SERVICE);
mp = new android.media.MediaPlayer();
mp.setDataSource("/data/data/" + getContext().getPackageName() + "/rasa.wav");
mp.prepare();
mp.start();
AudioManager.OnAudioFocusChangeListener focusChangeListener =
focusChange -> {
};
int result = am.requestAudioFocus(focusChangeListener,
AudioManager.STREAM_MUSIC,
AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK);
if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
mp = new android.media.MediaPlayer();
mp.setOnCompletionListener(mediaPlayer -> {
am.abandonAudioFocus(focusChangeListener);
});
mp.setDataSource("/data/data/" + getContext().getPackageName() + "/rasa.wav");
mp.prepare();
mp.start();
}