Как приостановить фоновую музыку при записи звука в Android

Я занимаюсь разработкой приложения для записи звука в Android. Таким образом, если какая-либо фоновая музыка уже воспроизводится в музыкальном проигрывателе устройства, ее следует приостановить до начала записи, и фоновая музыка должна возобновляться всякий раз, когда запись либо останавливается, либо приостанавливается. И то же самое должно работать во время воспроизведения записанного аудио. Кто-нибудь может помочь мне пройти через этот сценарий? Заранее спасибо..:)

Ответы на вопрос(2)

получить audioManager и проверить

audioManager.isMusicActive()

если правда

private void toggleNativePlayer(Context context) {
    Intent intent = new Intent("com.android.music.musicservicecommand");
    intent.putExtra("command", "togglepause");
    context.sendBroadcast(intent);
}

и после завершения записи снова запустите этот код, чтобы снова начать воспроизведение музыки

 22 мая 2016 г., 14:44
Больше не работает. Google сокращает такие трансляции сейчас.
 Maneesha Pankaj06 июл. 2012 г., 12:13
Yaay! это сработало .. :) :) .. Спасибо

запросив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.
}

Но есть только один AudioManager. Итак, Аудио фокус назначается каждому приложению, которое его запрашивает.one by one. Это означает, что если другое приложение запрашивает фокусировку звука,your application will lose it, Вы будете уведомлены о потере аудио-фокуса через обработчик onAudioFocusChange прослушивателя изменения фокуса аудио (afChangeListener) вы зарегистрировались при запросе аудио фокуса.

 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;
        }
    }
};

Ваш ответ на вопрос