From ed07584abbb3aa9d01ab1cfc999db775b1d8000c Mon Sep 17 00:00:00 2001 From: Jay Wang Date: Fri, 22 Apr 2016 16:01:50 -0700 Subject: SnapdragonCamera: request audio focus before starting video recording Use audio focus API to stop other music streams when starting video recording. Change-Id: I0097d0c2bd7157bc1936b9120bbe7c917b9707ee CRs-Fixed: 1005855 --- src/com/android/camera/VideoModule.java | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'src/com/android/camera/VideoModule.java') diff --git a/src/com/android/camera/VideoModule.java b/src/com/android/camera/VideoModule.java index 85be83d9c..f305c5f3d 100644 --- a/src/com/android/camera/VideoModule.java +++ b/src/com/android/camera/VideoModule.java @@ -38,6 +38,7 @@ import android.location.Location; import android.media.CamcorderProfile; import android.media.CameraProfile; import android.media.MediaRecorder; +import android.media.AudioManager; import android.net.Uri; import android.os.Build; import android.os.Bundle; @@ -1837,13 +1838,17 @@ public class VideoModule implements CameraModule, * Make sure we're not recording music playing in the background, ask the * MediaPlaybackService to pause playback. */ - private void pauseAudioPlayback() { - // Shamelessly copied from MediaPlaybackService.java, which - // should be public, but isn't. - Intent i = new Intent("com.android.music.musicservicecommand"); - i.putExtra("command", "pause"); + private void requestAudioFocus() { + AudioManager am = (AudioManager)mActivity.getSystemService(Context.AUDIO_SERVICE); - mActivity.sendBroadcast(i); + // Send request to obtain audio focus. This will stop other + // music stream. + int result = am.requestAudioFocus(null, AudioManager.STREAM_MUSIC, + AudioManager.AUDIOFOCUS_GAIN); + + if (result == AudioManager.AUDIOFOCUS_REQUEST_FAILED) { + Log.v(TAG, "Audio focus request failed"); + } } // For testing. @@ -1904,7 +1909,7 @@ public class VideoModule implements CameraModule, return false; } - pauseAudioPlayback(); + requestAudioFocus(); try { mMediaRecorder.start(); // Recording is now started -- cgit v1.2.3