Java 安卓手机通话后呼叫AUDIOFOCUS\u丢失
电话铃响时,我正试图暂停媒体播放器。我使用来自android站点的示例代码。就是这样,Java 安卓手机通话后呼叫AUDIOFOCUS\u丢失,java,android,android-mediaplayer,Java,Android,Android Mediaplayer,电话铃响时,我正试图暂停媒体播放器。我使用来自android站点的示例代码。就是这样, public void onAudioFocusChange(int focusChange) { switch (focusChange) { case AudioManager.AUDIOFOCUS_GAIN: // resume playback if (mMediaPlayer != null && !mM
public void onAudioFocusChange(int focusChange) {
switch (focusChange) {
case AudioManager.AUDIOFOCUS_GAIN:
// resume playback
if (mMediaPlayer != null && !mMediaPlayer.isPlaying()) {
mMediaPlayer.start();
mMediaPlayer.setVolume(1.0f, 1.0f);
}
break;
case AudioManager.AUDIOFOCUS_LOSS:
// Lost focus for an unbounded amount of time: stop playback and
// release media player
stopMediaPlayer();
break;
case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT:
// Lost focus for a short time, but we have to stop
// playback. We don't release the media player because playback
// is likely to resume
if (mMediaPlayer.isPlaying())
mMediaPlayer.pause();
break;
case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK:
// Lost focus for a short time, but it's ok to keep playing
// at an attenuated level
if (mMediaPlayer.isPlaying())
mMediaPlayer.setVolume(0.1f, 0.1f);
break;
}
}
当电话铃响时,发送音频聚焦\u丢失\u瞬态;没关系。通话结束时,发送音频聚焦增益,播放器继续播放;这也可以。但在发送AUDIOFOCUS\u增益后,AUDIOFOCUS\u损耗立即被发送。你知道它为什么会失去音频焦点吗?提前Thx。需要检查两件事:
1) 例如,您是否有一个播放按钮,当单击该按钮时,它会请求焦点并开始播放?我有一次遇到一个问题,他们播放“滴答”声来提供点击反馈。发生这种情况时,他们会将音频焦点从我的应用程序中移除。在XML中,为该活动中的所有按钮将此值设置为false:
android:soundEffectsEnabled = 'false'
2) 检查是否安装了其他也请求焦点的媒体播放器应用程序。他们是否在失去焦点后立即请求聚焦?如果是这样的话,除了警告用户不要安装此应用程序之外,您对此无能为力 也许这会对某人有所帮助。 我在项目中没有直接使用MediaPlayer,而是通过VideoView时遇到了这个问题。 打开文件时,它有以下代码
AudioManager am = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
am.requestAudioFocus(null, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);
因此,当您打开文件时,它会获得音频焦点和侦听器,这是在使用focusChange
AudioManager.AUDIOFOCUS\u LOSS启动之前设置的。或者我得到一个音频聚焦增益=>音频聚焦损耗=>音频聚焦损耗=>音频聚焦损耗=>音频聚焦增益=>音频聚焦损耗=>音频聚焦损耗=>音频聚焦损耗=>。。。等等。你使用什么设备(用模拟器测试)?它有谷歌音乐吗?您能否验证它是否可以与其他音乐播放器(如谷歌音乐)配合使用?附加一个logcat。那里可能有有趣的事情。是否还有其他(旧的)音乐应用程序可以监听通话结束并“窃取”焦点?我也有同样的问题:我的设备是Galaxy Note N7000-android 4.0.3。还有一件事:在AUDIOFOCUS_LOSS被触发后,听众再也不会接到电话了!