Как изменить звук затвора по умолчанию в Android? - PullRequest
0 голосов
/ 18 января 2012

Есть ли способ заменить звук затвора камеры в Android? Я хотел бы заменить звук затвора, звук, который издает камера при съемке фотографии, чем-то другим в коде.

Я использовал этот код, чтобы заставить телефон замолчать прямо перед съемкой, и отключить его сразу после:

AudioManager mgr = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
mgr.setStreamMute(AudioManager.STREAM_SYSTEM, true);

Я бы предпочел заменить звук другим .mp3 или .ogg, который может быть динамически установлен пользователем.

Я понимаю, что если у вас есть рутированный телефон, вы можете заменить файл. Это не решение для моего приложения.

1 Ответ

2 голосов
/ 18 января 2012

Звук воспроизводится с камеры-сервиса в родном слое любого устройства (libcameraservice.so).И, следовательно, любые изменения в воспроизводимом звуке должны быть сделаны здесь.

Оглядываясь назад:

Воспроизведение звука в вышеуказанной библиотеке является результатом обратного вызова затвора с камеры устройства.Это проверяет индекс громкости и, следовательно, не воспроизводит звук при отключении звука на устройстве.Когда событие позднее передается на уровень приложения, ваша реализация Camera.ShutterCallback (см. http://developer.android.com/reference/android/hardware/Camera.html#takePicture(android.hardware.Camera.ShutterCallback, android.hardware.Camera.PictureCallback, android.hardware.Camera.PictureCallback, android.hardware.Camera.PictureCallback)вызывается и, следовательно, здесь можно включить звук менеджера звука и воспроизвести ваш аудиофайл с помощью класса воспроизведения звука Android, например, звуковой дорожки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...