...
Для того, чтобы одновременно проигрывать в гарнитуру и поток с сервера, и локальный медиафайл с устройства, необходимо установить атрибут AudioAttributes.USAGE_VOICE_COMMUNICATION и запросить аудио фокус для медиаплеера, например
Code Block | ||||
---|---|---|---|---|
| ||||
/** * Audio focus example */ playStream.play( MediaPlayer music = MediaPlayer.create(getBaseContext(), R.raw.sound1); /** music.setAudioAttributes( * Audio focus example new AudioAttributes.Builder() */ .setUsage(AudioAttributes.USAGE_VOICE_COMMUNICATION) MediaPlayer music = MediaPlayer.create(getBaseContext(), R.raw.sound1 .build()); music.start(); AudioManager.OnAudioFocusChangeListener audioFocusChangeListener = new AudioManager.OnAudioFocusChangeListener() { @Override public void onAudioFocusChange(int focusChange) { Log.d("AudioFocus,", "onAudioFocusChange="+focusChange); music.setVolume(1, 1); } }; // Request audio focus for playback int requestResult = Flashphoner.getAudioManager().getAudioManager().requestAudioFocus(audioFocusChangeListener, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN); Log.d("AudioFocus,", "requestResult="+requestResult); // Abandon audio focus when playback complete music.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { Flashphoner.getAudioManager().getAudioManager().abandonAudioFocus(audioFocusChangeListener); } }); |