1

我编写了一些代码来使用 camera2 API 为 Android 播放快门声音。代码是:

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

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

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

有关于这个文件的一些信息:/system/media/audio/ui/camera_click.ogg ...但我不确定这是否是使用的声音文件。如果是这样,为什么它们听起来都与内置摄像头不同而不相同。

我正在寻求的解决方案:

任何一个:

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

或者

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

请指教。

4

2 回答 2

1

如果默认的相机应用程序有自己的快门声音,那么您不太可能得到它 - 它可能会融入应用程序 APK,或者是该 OEM 的一组设备声音的自定义添加,这些声音对非系统应用程序不可见。

使用 MediaActionSound 的主要原因是符合某些国家对相机快门声音不可静音的期望。即使在这些国家/地区的完全静音设备上,MediaActionSound 仍会播放快门声,开发人员无需担心。

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

于 2017-10-31T17:59:33.087 回答
-1

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

于 2017-10-31T13:18:14.397 回答