代码之家  ›  专栏  ›  技术社区  ›  ikevin8me

camera2 API快门声音不同于内置摄像头,在不同设备上不一致

  •  1
  • ikevin8me  · 技术社区  · 7 年前

    我编写了一些代码,使用camera2 API为Android播放shuttersound。代码为:

    MediaActionSound mediaActionSound = new MediaActionSound();
    mediaActionSound.play(MediaActionSound.SHUTTER_CLICK);
    

    我已经在十多台设备上进行了测试。问题是:

    1. 实际播放的声音与内置摄像头不同。
    2. 不同的设备实际上播放不同的声音。(似乎设备制造商各自安装了不同的声音罚款。)

    关于此文件有一些信息: /单击system/media/audio/ui/camera\u。ogg公司

    我正在寻求的解决方案:

    要么:

    播放与内置摄像头完全相同的声音。我该怎么做?

    在我的应用程序中安装一个自定义声音文件,并在所有设备上播放相同的声音。(然而,这种方法是第二首选的,因为我们必须找到一个自定义的声音文件。)

    请告知。

    2 回复  |  直到 7 年前
        1
  •  1
  •   Eddy Talvala    7 年前

    如果默认的摄像头应用程序有自己的快门声音,那么你不太可能找到它——它可能会被烘焙到应用程序APK中,或者在OEM的一组设备声音中添加一些非系统应用程序看不到的自定义声音。

    使用MediaActionSound的主要原因是为了符合一些国家的期望,即相机快门声音无法静音。在这些国家,即使在完全静音的设备上,MediaActionSound也会播放快门声音,而开发者无需担心。

    否则,如果遵守快门声音强制并不重要,您可以在快门上播放您想要的任何声音,或者在未强制快门声音静音时使用您自己的声音(您可以通过 canDisableShutterSound ),并在快门声音不应静音的地方返回到MediaActionSound。

        2
  •  -1
  •   RootOnChair    7 年前

    这取决于你的决定。 如果你想打造应用程序的品牌,只需使用你喜欢的品牌,或者用用户熟悉的声音来对待用户。你不必把它复杂化