diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/com/android/camera/VideoModule.java | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/com/android/camera/VideoModule.java b/src/com/android/camera/VideoModule.java index f305c5f3d..896dc195b 100644 --- a/src/com/android/camera/VideoModule.java +++ b/src/com/android/camera/VideoModule.java @@ -1844,13 +1844,23 @@ public class VideoModule implements CameraModule, // Send request to obtain audio focus. This will stop other // music stream. int result = am.requestAudioFocus(null, AudioManager.STREAM_MUSIC, - AudioManager.AUDIOFOCUS_GAIN); + AudioManager.AUDIOFOCUS_GAIN_TRANSIENT); if (result == AudioManager.AUDIOFOCUS_REQUEST_FAILED) { Log.v(TAG, "Audio focus request failed"); } } + private void releaseAudioFocus() { + AudioManager am = (AudioManager)mActivity.getSystemService(Context.AUDIO_SERVICE); + + int result = am.abandonAudioFocus(null); + + if (result == AudioManager.AUDIOFOCUS_REQUEST_FAILED) { + Log.v(TAG, "Audio focus release failed"); + } + } + // For testing. public boolean isRecording() { return mMediaRecorderRecording; @@ -1916,6 +1926,7 @@ public class VideoModule implements CameraModule, } catch (RuntimeException e) { Log.e(TAG, "Could not start media recorder. ", e); releaseMediaRecorder(); + releaseAudioFocus(); // If start fails, frameworks will not lock the camera for us. mCameraDevice.lock(); mStartRecPending = false; @@ -2068,6 +2079,7 @@ public class VideoModule implements CameraModule, } // release media recorder releaseMediaRecorder(); + releaseAudioFocus(); if (!mPaused) { mCameraDevice.lock(); if (!ApiHelper.HAS_SURFACE_TEXTURE_RECORDING) { |
