如何以编程方式打开相机开关声音

How to make Camera on-off sound on programatically

我制作了一个相机,现在我希望它在拍摄或录制时具有 on/off 声音功能

我可以让它固定静音或取消静音,但如果我想要有按钮切换,它不起作用

有声: 将此代码添加到 ShutterCallback:

   AudioManager mgr = (AudioManager) getActivity().getSystemService(Context.AUDIO_SERVICE);
   mgr.playSoundEffect(AudioManager.FLAG_PLAY_SOUND);

没有声音:在捕获之前添加此代码:

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

以及图片回调的代码:

mgr.setStreamMute(AudioManager.STREAM_SYSTEM, false);

我找到了这个案例的解决方案:

  • 静音:pass shuttercallback 为空
  • 取消静音:如上初始化关闭回调

               Camera.ShutterCallback shutterCallback = null;
                if (hasSound) {
                    shutterCallback = () -> {
                        AudioManager mgr = (AudioManager) getActivity().getSystemService(Context.AUDIO_SERVICE);
                        mgr.playSoundEffect(AudioManager.FLAG_PLAY_SOUND);
                    };
                }
                mCamera.takePicture(shutterCallback, null, mPicture);