2012-01-18 22 views
0

Androidでカメラのシャッター音を置き換える方法はありますか?私は、シャッター音、カメラが写真を撮るときに作る音、コード内の何か他のものと置き換えたいと思います。Androidでデフォルトのシャッター音を変更するにはどうすればよいですか?

私は右の写真を撮影し、右の後にそれをunsilencing前に携帯電話を黙らせるこのコードを使用:

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

私はによって動的に設定することができ、別の.mp3または.oggと音を交換することを好むだろうユーザー。

根付いた電話を持っている場合は、ファイルを置き換えることができます。これは私のアプリの解決策ではありません。

答えて

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

私はこのアプリをコールする前にこれを行いました。camera.takePicture(shutterCallback、rawCallback、jpegCallback);デバイスAudioManager.STREAM_SYSTEMをミュートします。シャッターコールバック方式でミュートを解除し、Rawファイルからサウンドファイルを再生しますが、システムファイルとファイルを再生しているときもあります。これをどう扱う? – Vikram

関連する問題