通过 MediaPlayer 播放语音邮件可使警报音量静音
Playing voicemail via MediaPlayer turns alarm volume silent
我使用 MediaPlayer 从 URL 播放音频文件。该文件播放正常,但播放后(如果应用程序未被明确杀死),闹钟铃声无声。我需要在播放结束时 clear/reset 做什么才能避免这种情况发生?
我用来控制语音信箱播放的文件代码。
http://hastebin.com/ehijobuwoc.coffee
您可以在播放开始时尝试使用 getStreamVolume,然后在播放结束后使用 setStreamVolume 将其设置回来。
好的,找到了有用的东西。解决了闹钟问题,让我可以通过耳机播放语音信箱。
我需要在 onStop() 中将 setMode 恢复到开始时的状态:
// set mode back to normal, and speakerphone back to true.
AudioManager am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
am.setMode(prevMode);
am.setSpeakerphoneOn(true);
并在初始化中:
private void initMediaPlayer() {
// Make the media play through earpiece instead of through speaker(default)
AudioManager am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
prevMode = am.getMode();
am.setMode(AudioManager.MODE_IN_COMMUNICATION);
am.setSpeakerphoneOn(false);
感谢@DreadfulWeather 带我找到这个答案,并提出了一些有用的问题。
我使用 MediaPlayer 从 URL 播放音频文件。该文件播放正常,但播放后(如果应用程序未被明确杀死),闹钟铃声无声。我需要在播放结束时 clear/reset 做什么才能避免这种情况发生?
我用来控制语音信箱播放的文件代码。 http://hastebin.com/ehijobuwoc.coffee
您可以在播放开始时尝试使用 getStreamVolume,然后在播放结束后使用 setStreamVolume 将其设置回来。
好的,找到了有用的东西。解决了闹钟问题,让我可以通过耳机播放语音信箱。
我需要在 onStop() 中将 setMode 恢复到开始时的状态:
// set mode back to normal, and speakerphone back to true.
AudioManager am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
am.setMode(prevMode);
am.setSpeakerphoneOn(true);
并在初始化中:
private void initMediaPlayer() {
// Make the media play through earpiece instead of through speaker(default)
AudioManager am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
prevMode = am.getMode();
am.setMode(AudioManager.MODE_IN_COMMUNICATION);
am.setSpeakerphoneOn(false);
感谢@DreadfulWeather 带我找到这个答案,并提出了一些有用的问题。