Ume*_*ran 4 audio service android
1)在一个Android项目中,我编写了一个在后台播放音乐的服务.问题是当我的应用程序在后台播放音乐而另一个应用程序(音乐播放器)播放音乐时,两个音频同时播放.我想停止在我的应用程序中播放音乐,如果有任何其他应用程序播放音乐.我该如何处理这个问题?
这个概念在Android中被称为音频焦点.
从广义上讲,这意味着只有一个应用程序可以在一个时间点拥有音频焦点,并且如果它被要求你应该放弃(例如,如果电话到达,或者另一个应用程序想要播放音乐,&c).
要做到这一点,你需要注册一个OnAudioFocusChangeListener.
基本上,你必须:
请查看Android文档中的Managing Audio Focus文章.
这就是我解决问题的方法.
实行 OnAudioFocusChangeListener listener
初始化AudioManager就像
private AudioManager mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
Run Code Online (Sandbox Code Playgroud)
请求音频焦点
mAudioManager.requestAudioFocus(this, AudioManager.STREAM_MUSIC,
AudioManager.AUDIOFOCUS_GAIN);
Run Code Online (Sandbox Code Playgroud)
@Overide以下方法 OnAudioFocusChangeListener
public void onAudioFocusChange(int focusChange)
{
switch (focusChange)
{
case AudioManager.AUDIOFOCUS_GAIN:
case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK:
resumePlayer(); // Resume your media player here
break;
case AudioManager.AUDIOFOCUS_LOSS:
case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT:
pausePlayer();// Pause your media player here
break;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4369 次 |
| 最近记录: |