Camera2 API звук затвора отличается от встроенной камеры и несовместим на разных устройствах

Я написал некоторый код для воспроизведения звука затвора для Android с помощью API camera2. Код является:

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

Я тестировал на более чем десяти устройствах. Проблемы:

  1. На самом деле воспроизводить другой звук, что встроенная камера.
  2. На самом деле разные устройства воспроизводят разные звуки. (Кажется, что производитель устройства каждый установил свой звук отлично.)

Есть некоторая информация об этом файле: /system/media/audio/ui/camera_click.ogg ... но я не уверен, используется ли этот звуковой файл. И если да, то почему они все звучат по-разному и не совпадают со встроенной камерой.

Решение, которое я ищу:

Или:

Воспроизведите точно такой же звук, как со встроенной камерой. Как мне это сделать?

или же

Установите пользовательский звуковой файл в мое приложение и воспроизводите этот звук на всех устройствах. (Однако этот метод является второстепенным, потому что мы должны найти собственный звуковой файл.)

Пожалуйста, порекомендуйте.

2 ответа

Решение

Если приложение камеры по умолчанию имеет собственный звук затвора, маловероятно, что вы сможете получить его - скорее всего, оно встроено в приложение APK или какое-то специальное дополнение к набору звуков устройства этого OEM-производителя, которое не будет видно несистемным приложениям.

Основная причина использования MediaActionSound в соответствии с ожиданиями того, что в некоторых странах звук затвора камеры не будет отключен. MediaActionSound по-прежнему будет воспроизводить звук затвора даже на устройствах с полным глушением в таких странах, и разработчику не придется об этом беспокоиться.

В противном случае вы можете просто воспроизвести любой звук, который хотите, при нажатии затвора, если соблюдение требований к звуку затвора не является критичным - или вы можете использовать свой собственный звук, когда отключение звука затвора не применяется (вы можете проверить это с помощью canDisableShutterSound), и возвратитесь к MediaActionSound в местах, где звук затвора не должен быть отключен.

Это зависит от вашего решения. Если вы хотите сделать бренд своего приложения, просто используйте тот, который вам нравится, или порадуйте пользователя знакомым звуком. Вы не должны усложнять это

Другие вопросы по тегам