camera2 API 快门声音与内置相机不同,并且在不同设备之间不一致
camera2 API shutter sound is different than built-in camera's and is inconsistent across different devices
我写了一些代码来使用 camera2 API 为 Android 播放快门声。代码是:
MediaActionSound mediaActionSound = new MediaActionSound();
mediaActionSound.play(MediaActionSound.SHUTTER_CLICK);
我已经在十多台设备上进行了测试。问题是:
- 实际播放的声音与内置摄像头不同。
- 不同的设备实际上播放不同的声音。 (好像每个设备厂商都安装了不同的声音就好了。)
有一些关于这个文件的信息:
/system/media/audio/ui/camera_click.ogg
...但我不确定这是否是使用的声音文件。如果是,为什么它们听起来都和内置摄像头不一样。
我正在寻找的解决方案:
或者:
播放与内置相机完全相同的声音。我该怎么做?
或
在我的应用程序中安装自定义声音文件并在所有设备上播放相同的声音。 (然而,这种方法是次要的,因为我们必须找到一个自定义的声音文件。)
请指教
这取决于你的决定。
如果你想打造你的应用程序品牌,只需使用你喜欢的那个或用他们熟悉的声音来对待用户。你不必把它复杂化
如果默认的相机应用有自己的快门声,您不太可能会听到它 - 它可能是内置在应用 APK 中,或者是该 OEM 设备声音集的一些自定义添加,但您看不到非系统应用程序。
使用 MediaActionSound 的主要原因是为了符合某些国家/地区对相机快门声音不可静音的期望。即使在这些国家/地区的完全静音设备上,MediaActionSound 仍会播放快门声音,开发人员无需担心。
否则,您可以在按下快门时播放您想要的任何声音,如果遵守快门声音强制执行并不重要 - 或者您可以在不强制执行快门声音静音时使用您自己的声音(您可以检查通过 canDisableShutterSound),并在不应将快门声音静音的地方回退到 MediaActionSound。
我写了一些代码来使用 camera2 API 为 Android 播放快门声。代码是:
MediaActionSound mediaActionSound = new MediaActionSound();
mediaActionSound.play(MediaActionSound.SHUTTER_CLICK);
我已经在十多台设备上进行了测试。问题是:
- 实际播放的声音与内置摄像头不同。
- 不同的设备实际上播放不同的声音。 (好像每个设备厂商都安装了不同的声音就好了。)
有一些关于这个文件的信息: /system/media/audio/ui/camera_click.ogg ...但我不确定这是否是使用的声音文件。如果是,为什么它们听起来都和内置摄像头不一样。
我正在寻找的解决方案:
或者:
播放与内置相机完全相同的声音。我该怎么做?
或
在我的应用程序中安装自定义声音文件并在所有设备上播放相同的声音。 (然而,这种方法是次要的,因为我们必须找到一个自定义的声音文件。)
请指教
这取决于你的决定。 如果你想打造你的应用程序品牌,只需使用你喜欢的那个或用他们熟悉的声音来对待用户。你不必把它复杂化
如果默认的相机应用有自己的快门声,您不太可能会听到它 - 它可能是内置在应用 APK 中,或者是该 OEM 设备声音集的一些自定义添加,但您看不到非系统应用程序。
使用 MediaActionSound 的主要原因是为了符合某些国家/地区对相机快门声音不可静音的期望。即使在这些国家/地区的完全静音设备上,MediaActionSound 仍会播放快门声音,开发人员无需担心。
否则,您可以在按下快门时播放您想要的任何声音,如果遵守快门声音强制执行并不重要 - 或者您可以在不强制执行快门声音静音时使用您自己的声音(您可以检查通过 canDisableShutterSound),并在不应将快门声音静音的地方回退到 MediaActionSound。