我编写了一些代码来使用camera2api为android播放shuttersound。代码是:
MediaActionSound mediaActionSound = new MediaActionSound();
mediaActionSound.play(MediaActionSound.SHUTTER_CLICK);
我已经测试了十多台设备。问题是:
实际播放的声音与内置摄像头不同。
不同的设备实际上播放不同的声音(似乎每个设备制造商都安装了不同的音响。)
有一些关于这个文件的信息:/system/media/audio/ui/camera\u click.ogg。。。但我不确定这是不是所用的声音文件。如果是这样的话,为什么它们听起来都不一样,与内置摄像头不一样呢。
我寻求的解决方案是:
或者:
播放与内置摄像头完全相同的声音。我该怎么做?
或
将自定义声音文件安装到我的应用程序中,并在所有设备上播放相同的声音(但是,这种方法是第二首选,因为我们必须找到一个自定义的声音文件。)
请告知。
2条答案
按热度按时间vaj7vani1#
这取决于你的决定。如果你想打造你的应用品牌,只需使用你喜欢的或者用用户熟悉的声音来对待他们。你不必把它复杂化
8xiog9wr2#
如果默认的相机应用程序有自己的快门声音,你不太可能得到它-它很可能被烘焙到应用程序apk中,或者一些定制的附加到oem的设备声音集合中,这些声音对于非系统应用程序来说是不可见的。
使用mediaactionsound的主要原因是符合某些国家的期望,即相机快门声音不可静音。mediaactionsound即使在这些国家的完全静音的设备上也会播放快门声,而开发者不必担心。
否则,您可以在快门上播放您想要的任何声音,如果遵守快门声音执行并不重要-或者您可以在快门声音静音未执行时使用自己的声音(您可以通过candisableshuttersound进行检查),并在快门声音不应静音的地方返回到mediaactionsound。