【问题标题】:camera2 API shutter sound is different than built-in camera's and is inconsistent across different devicescamera2 API 快门声音与内置相机不同,并且在不同设备之间不一致
【发布时间】:2017-10-31 12:43:32
【问题描述】:

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

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

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

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

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

我正在寻求的解决方案:

要么:

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

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

请指教。

【问题讨论】:

    标签: java android android-camera android-sound


    【解决方案1】:

    如果默认相机应用有自己的快门声音,则您不太可能获得它 - 它可能是应用 APK 中的一部分,或者是该 OEM 的一组设备声音中的一些自定义添加,非系统应用程序。

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

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

    【讨论】:

    • 方法 canDisableShutterSound 在 Camera2 API 中不可用,仅在已弃用的 Camera1 API 上可用。那么,我们如何在不参考旧 API 的情况下测试快门声音执行?
    • 只需使用已弃用的 API 进行测试;是的,需要将其移至未弃用的 API,但通过 Camera1 可以正常工作。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-06
      • 2018-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-22
      相关资源
      最近更新 更多