2012-01-18 2 views
0

Android에서 카메라 셔터 소리를 교체 할 수있는 방법이 있습니까? 셔터 소리, 카메라에서 사진을 찍을 때 나는 소리, 코드에서 뭔가 다른 소리로 바꾸고 싶습니다.Android에서 기본 셔터 음을 변경하려면 어떻게해야합니까?

AudioManager mgr = (AudioManager)getSystemService(Context.AUDIO_SERVICE); 
mgr.setStreamMute(AudioManager.STREAM_SYSTEM, true); 

내가 동적으로 설정 될 수있는 또 다른 .mp3 또는 .ogg와 사운드를 대체 할 원합니다 :

내가 바로 사진을 촬영하고, 직후에 그것을 unsilencing 전에 전화를 침묵이 코드를 사용 사용자.

내가 뿌리 내린 전화를 가지고 있다면 파일을 바꿀 수 있음을 이해합니다. 이것은 내 애플 리케이션을위한 해결책이 아니다.

답변

2

사운드는 모든 장치 (libcameraservice.so)의 기본 레이어에있는 카메라 서비스에서 재생됩니다. 따라서 재생 된 사운드의 수정 사항을 여기에서 수행해야합니다. 지나고에서

는 :

상기 라이브러리의 일부를 재생하는 사운드 장치 카메라 셔터 콜백의 결과이다. 이렇게하면 음량 인덱스가 확인되므로 장치를 음소거로 설정할 때 사운드가 재생되지 않습니다. 이벤트가 나중에 앱 레이어로 전송되면 Camera.ShutterCallback (http://developer.android.com/reference/android/hardware/Camera.html#takePicture(android.hardware.Camera.ShutterCallback, android.hardware.Camera.PictureCallback, android.hardware.Camera.PictureCallback, android.hardware.Camera.PictureCallback 참조)의 구현이 호출되므로 여기에서 호출됩니다. 오디오 트랙과 같은 Android 오디오 재생 클래스를 사용하여 오디오 관리자의 음소거를 해제하고 오디오 파일을 재생할 수 있습니다.

+0

그래서 해결책은 ShutterCallback에서 음소거를 설정하고 다른 콜백 기능에서 음소거를 해제 한 다음 다른 사운드를 재생하는 것입니다. – user430926

+1

TakePicture 호출을 호출하기 전에 장치를 음소거로 설정하고 OnShutterCallback에서 음소거를 해제하십시오. 이렇게하면 내부 사운드는 음소거되지만 음소거를 해제 한 후에는 소리를 낼 수 있습니다. – Deepak

+0

나는 이것을하기 전에 내 app에서했다. camera.takePicture (shutterCallback, rawCallback, jpegCallback); 장치 AudioManager.STREAM_SYSTEM을 음소거합니다. 그리고 셔터 콜백 방식에서 음소거를 해제하고 원시 폴더에서 사운드 파일을 재생하지만, 시스템 파일과 파일을 재생할 때가 있습니다. 어떻게 처리할까요? – Vikram

관련 문제