如何在android中录制音频时暂停背景音乐
我正在用android开发一个录音应用程序。因此,如果任何背景音乐已在设备音乐播放器中播放,则应在开始录制之前暂停,并且无论何时停止或暂停录制,背景音乐都应恢复。在播放录制的音频时也应该如此。有谁能帮我渡过这个难关吗?提前感谢..:)联系audioManager并查看如何在android中录制音频时暂停背景音乐,android,Android,我正在用android开发一个录音应用程序。因此,如果任何背景音乐已在设备音乐播放器中播放,则应在开始录制之前暂停,并且无论何时停止或暂停录制,背景音乐都应恢复。在播放录制的音频时也应该如此。有谁能帮我渡过这个难关吗?提前感谢..:)联系audioManager并查看 audioManager.isMusicActive() 如果是真的 private void toggleNativePlayer(Context context) { Intent intent = new Inte
audioManager.isMusicActive()
如果是真的
private void toggleNativePlayer(Context context) {
Intent intent = new Intent("com.android.music.musicservicecommand");
intent.putExtra("command", "togglepause");
context.sendBroadcast(intent);
}
录制完成后,再次运行此代码以再次开始播放音乐获取audioManager并检查
audioManager.isMusicActive()
如果是真的
private void toggleNativePlayer(Context context) {
Intent intent = new Intent("com.android.music.musicservicecommand");
intent.putExtra("command", "togglepause");
context.sendBroadcast(intent);
}
录制完成后,再次运行此代码以再次开始播放音乐您可以通过请求AudioFocus停止其他应用程序播放音乐。当您被授予AudioFocus时,其他应用程序将停止播放音乐,然后您可以根据需要播放/录制
AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
// Request audio focus for playback
int result = am.requestAudioFocus(focusChangeListener,
// Use the music stream.
AudioManager.STREAM_MUSIC,
// Request permanent focus.
AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
// other app had stopped playing song now , so you can start recording.
}
但是,只有一个音频管理器。因此,音频焦点会一个接一个地分配给每个请求音频焦点的应用程序。这意味着如果另一个应用程序请求音频焦点,您的应用程序将丢失它。在请求音频焦点时,您将通过注册的音频焦点更改侦听器(afChangeListener)的onAudioFocusChange处理程序收到音频焦点丢失的通知
private OnAudioFocusChangeListener focusChangeListener =
new OnAudioFocusChangeListener() {
public void onAudioFocusChange(int focusChange) {
AudioManager am =(AudioManager)getSystemService(Context.AUDIO_SERVICE);
switch (focusChange) {
case (AudioManager.AUDIOFOCUS_LOSS) :
//Lost focus. Stop recording
break;
case (AudioManager.AUDIOFOCUS_GAIN) :
//Gained AudioFocus. Start recording tasks
break;
default: break;
}
}
};
您可以通过请求AudioFocus停止其他应用程序播放音乐。当您被授予AudioFocus时,其他应用程序将停止播放音乐,然后您可以根据需要播放/录制
AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
// Request audio focus for playback
int result = am.requestAudioFocus(focusChangeListener,
// Use the music stream.
AudioManager.STREAM_MUSIC,
// Request permanent focus.
AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
// other app had stopped playing song now , so you can start recording.
}
但是,只有一个音频管理器。因此,音频焦点会一个接一个地分配给每个请求音频焦点的应用程序。这意味着如果另一个应用程序请求音频焦点,您的应用程序将丢失它。在请求音频焦点时,您将通过注册的音频焦点更改侦听器(afChangeListener)的onAudioFocusChange处理程序收到音频焦点丢失的通知
private OnAudioFocusChangeListener focusChangeListener =
new OnAudioFocusChangeListener() {
public void onAudioFocusChange(int focusChange) {
AudioManager am =(AudioManager)getSystemService(Context.AUDIO_SERVICE);
switch (focusChange) {
case (AudioManager.AUDIOFOCUS_LOSS) :
//Lost focus. Stop recording
break;
case (AudioManager.AUDIOFOCUS_GAIN) :
//Gained AudioFocus. Start recording tasks
break;
default: break;
}
}
};
不再工作了。谷歌现在正在减少此类广播。不再有效。谷歌现在正在减少这类广播。谢谢你的回答,但是,我怎样才能恢复以前的音乐?好的,这对我来说很有效:谢谢你的回答,但是,我怎样才能恢复以前的音乐?好的,这对我来说很有效: