2012-01-18 65 views
0

有什麼方法可以取代Android中的相機快門聲音?我想更換快門聲音,相機拍攝照片時發出的聲音,以及其他代碼。如何更改Android中的默認快門音?

我用這個代碼正確拍照,右後unsilencing前沉默電話:

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

我寧願用另一個.mp3.ogg,可以動態地設置爲更換聲卡用戶。

我明白,如果你有一個根深蒂固的手機,你可以替換文件。這不是我的應用程序的解決方案。

回答

2

聲音從cameraservice播放到任何設備的本地層(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 2012-01-19 02:56:31

+1

將設備設置爲靜音,然後調用takePicture調用並在OnShutterCallback中取消靜音。這會使內部聲音靜音,但是您可以在取消靜音後重新啓動。 – Deepak 2012-01-19 05:09:36

+0

我在我的應用程序之前調用camera.takePicture(shutterCallback,rawCallback,jpegCallback);靜音設備AudioManager.STREAM_SYSTEM。並在快門回調方法中取消靜音並從原始文件夾播放我的聲音文件,但有時播放系統文件以及我的文件。如何處理這個? – Vikram 2012-01-19 06:27:16

相關問題