Есть ли способ заменить или отключить звук затвора камеры в андроиде?
Я хотел бы заменить звук затвора (звук, создаваемый камерой при щелчке фотографии) с чем-то еще в коде. Я надеялся, что это будет похоже на рингтоны или уведомления, но я ничего не вижу в этом другом. Я видел код, чтобы заставить замолчать телефон прямо перед тем, как сделать снимок, и сразу же после него выпустить, но я предпочел бы заменить звук другим mp3 или ogg.
Поймите, если у вас есть встроенный телефон, вы можете заменить файл. Это не решение для моего приложения.
Просто в моем приложении. Идея заключалась бы в том, чтобы установить ее, а затем отключить. Забавно, как после того, как вы напечатаете что-то, перечитайте его, он помогает думать об этом с другой точки зрения. Я использовал приведенный ниже код, чтобы отключить звуковую услугу, и я играю в свое звучание прямо перед этим. Работает как прекрасное обходное решение. Возможно, когда-нибудь мы сможем это установить.
AudioManager mgr = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
mgr.setStreamMute(AudioManager.STREAM_SYSTEM, true);
Спасибо!
Ответы
Ответ 1
Если вы используете объект Camera
, вы можете предоставить Camera.ShutterCallback
и играть все, что хотите.
Если вы используете Intent
для запуска другого приложения, чтобы сделать снимок, это приложение выбирает, что он играет, когда снимок сделан.
Ваше решение mute-the-audio является недружественным пользователем, как будто есть что-то еще, что нужно воспроизводить системный звук в течение этого периода времени, пользователь не услышит его.
Ответ 2
Вы можете использовать данные из обратного вызова предварительного просмотра, используя функцию, чтобы сохранить ее на изображении на каком-либо типе триггера, например кнопку, используя onclick listener. вы можете сжать изображение до jpeg или png. Таким образом, не будет реализован shutterCallback. и поэтому вы можете воспроизводить любой звук, который вы хотите, или нет при съемке.