- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个在后台播放音乐的广播应用程序,但是当我的应用程序和其他音乐应用程序同时播放音乐时,其他音乐应用程序存在问题,为此,我尝试使用AudioFocus
解决此问题问题,我的下面的代码可以正常工作,但是在一个方向上
问题
private AudioManager mAudioManager;
boolean mAudioFocusGranted = false;
private AudioManager.OnAudioFocusChangeListener mOnAudioFocusChangeListener = new AudioManager.OnAudioFocusChangeListener() {
@Override
public void onAudioFocusChange(int focusChange) {
switch (focusChange) {
case AudioManager.AUDIOFOCUS_GAIN:
mediaPlayer.start();
MusicButton.setChecked(false);
break;
case AudioManager.AUDIOFOCUS_GAIN_TRANSIENT:
mediaPlayer.start();
MusicButton.setChecked(false);
break;
case AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK:
mediaPlayer.start();
MusicButton.setChecked(false);
break;
case AudioManager.AUDIOFOCUS_LOSS:
mediaPlayer.pause();
MusicButton.setChecked(true);
break;
case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT:
mediaPlayer.pause();
MusicButton.setChecked(true);
break;
case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK:
mediaPlayer.setVolume(0.2f,0.2f);
break;
}
}
};
SuppressLint({"CommitPrefEdits", "Assert"})
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MusicButton = findViewById(R.id.toggleButton);
mAudioManager = (AudioManager)getApplicationContext().getSystemService(Context.AUDIO_SERVICE);
if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
mAudioFocusGranted = true;
} else if (result == AudioManager.AUDIOFOCUS_REQUEST_FAILED) {
MusicButton.setChecked(true);
mediaPlayer.pause();
}
}
最佳答案
如果您想接受它作为答复,这是我上面的评论的摘要:
暂停一个应用程序中的音乐/音频通常不会触发焦点更改,而焦点更改将导致另一应用程序恢复。该应用程序必须调用abandonAudioFocus()或abandonAudioFocusRequest(audioFocusRequest),通常应响应stop()而不是pause()来调用它们。
在Google音乐中轻按暂停不会触发您的关注。你对此无能为力。如果用户暂停Google音乐并想恢复您的应用,他们将在您的应用中手动点按“播放”,或者在仍然可见时通过您的媒体通知。
如果您想在暂停后恢复Google音乐,则必须在暂停MediaPlayer之后调用abandonAudioFocus来放弃焦点。再次,尽管用户不一定从暂停按钮期望这种行为。
关于android - 使用onAudioFocusChange停止其他音乐应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48329178/
private static int changedFocus; private static boolean focusGranted; private static AudioManager au
我正在构建一个媒体播放器并以类似于文档的方式实现 onAudioFocusChange(): OnAudioFocusChangeListener afChangeListener = new OnA
我一直在构建一个 MediaPlayer 应用程序,我一直在尝试让我的 Mediaplayer 应用程序来处理 AudioFocusChange 事件。但是,无论我如何构建我的代码,我似乎都不会监听
我是一名优秀的程序员,十分优秀!