20

クラスのtakePicture()メソッドを使用しています。Camera写真は撮れるのに音が出ない!私のクライアントは、Android が発するデフォルトのクリック音を求めています。

私は他のスレッドを見てきましたが、問題は反対ではなく、サウンドを無効にすることにあるようです! 私のアプリがクリック音を出さないのはなぜですか??

4

2 に答える 2

52

I also had this problem. I solved it by using following code: The following is used to call takePicture:

clickButton.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(final View view) {
                mCamera.takePicture(shutterCallback, null, onPicTaken);
            }
        });

Now shutteerCallBack:

private final ShutterCallback shutterCallback = new ShutterCallback() {
        public void onShutter() {
            AudioManager mgr = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
            mgr.playSoundEffect(AudioManager.FLAG_PLAY_SOUND);
        }
    };

Now Do whatever after taking picture from camera:

     /**
     * This will be called after taking picture from camera.
     */
    final transient private PictureCallback onPicTaken = new PictureCallback() {
        /**
         * After taking picture, onPictureTaken() will be called where image
         * will be saved.
         * 
         */
        @Override
        public void onPictureTaken(final byte[] data, final Camera camera) {
         }

This will play sound on clicking capture button.

Thank you :)

于 2012-06-05T05:02:05.120 に答える
19

カメラにデフォルトの Android サウンドを再生させたい場合は、空のシャッター コールバックを与える必要があります。

ShutterCallback shutterCallback = new ShutterCallback() {
    @Override
    public void onShutter() { 
        /* Empty Callbacks play a sound! */
    }
};

mCamera.takePicture(shutterCallback , null, onPicTaken);

HTC One SV および Samsung Galaxy XCover 2 でテスト済み。

コールバックに空のシャッター コールバックを指定すると、デフォルトのサウンドが再生されます。

takePicturenullで呼び出すとShutterCallback、カメラはサウンドを再生しません。

Shrikant の答えは機能していますが、ドキュメントに記載されmgr.playSoundEffect();ているように呼び出されることを意図していないため、予期しない動作をする可能性があります。AudioManager.FLAG_PLAY_SOUND

于 2014-09-24T14:16:33.413 に答える