camera2 API快门声音与内置摄像头不同,并且在不同设备之间不一致

时间:2017-10-31 12:43:32

标签: java android android-camera android-sound

我使用camera2 API编写了一些代码来播放Android的shuttersound。代码是:

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

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

  1. 实际播放内置相机的声音不同。
  2. 不同的设备实际上播放不同的声音。 (似乎设备制造商各自安装了不同的声音。)
  3. 有关此文件的一些信息: /system/media/audio/ui/camera_click.ogg ...但我不确定这是否是使用的声音文件。如果是这样,为什么它们听起来与内置相机听起来不同而且不一样。

    我寻求的解决方案:

    或者:

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

    在我的应用中安装自定义声音文件,并在所有设备上播放相同的声音。 (但是,这种方法是次要的,因为我们必须找到一个自定义的声音文件。)

    请告知。

2 个答案:

答案 0 :(得分:1)

如果默认的相机应用程序有自己的快门声音,则不太可能达到它 - 它可能会被加入到应用APK中,或者对该OEM的设备声音的一些自定义添加,这对于非系统应用程序。

使用MediaActionSound符合某些国家/地区的主要原因是相机快门声音无法保持静音。即使在这些国家的完全静音设备上,MediaActionSound仍会发出快门声,而开发人员不必担心它。

否则,您可以在快门按下播放您想要的任何声音,如果遵守快门声音执行并不重要 - 或者您可以在不执行快门声音静音时使用您自己的声音(您可以通过{ {3}}),并且在不应该关闭快门声的地方回到MediaActionSound。

答案 1 :(得分:-1)

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