diff options
Diffstat (limited to 'services/camera')
-rw-r--r-- | services/camera/libcameraservice/CameraService.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp index 9f7bd27..05e7bcf 100644 --- a/services/camera/libcameraservice/CameraService.cpp +++ b/services/camera/libcameraservice/CameraService.cpp @@ -278,9 +278,20 @@ void CameraService::setCameraFree(int cameraId) { // media players. static MediaPlayer* newMediaPlayer(const char *file) { + // Read the system property to determine if we have need to use the + // AUDIO_STREAM_ENFORCED_AUDIBLE type. + char value[PROPERTY_VALUE_MAX]; + property_get("ro.camera.sound.forced", value, "0"); + int audioStreamType; + if (strcmp(value, "0") != 0) { + audioStreamType = AUDIO_STREAM_ENFORCED_AUDIBLE; + } else { + audioStreamType = AUDIO_STREAM_MUSIC; + } + MediaPlayer* mp = new MediaPlayer(); if (mp->setDataSource(file, NULL) == NO_ERROR) { - mp->setAudioStreamType(AUDIO_STREAM_ENFORCED_AUDIBLE); + mp->setAudioStreamType(audioStreamType); mp->prepare(); } else { LOGE("Failed to load CameraService sounds: %s", file); |