Android设备在拍照时会有一个快门声,大部分设备在调节音量按键时拍照的这个声音是不发生变化的,也就是说固定在一个音量上。
当然一些地区可能要求拍照必须要有声音,也就是说不管在什么情况下拍照都要发出声音,即使在静音模式下。
所以就出现上面说的音量固定不可调节的现象。
1、拍照必须有声音且音量值固定
关于这个的实现,在android中有它相关的一个config信息。具体是
frameworks\base\core\res\res\values\config.xml中
<!-- Whether camera shutter sound is forced or not (country specific). -->
<bool name="config_camera_sound_forced">true</bool>
如上这个,配置成true,在拍照时就会有声音。反之false
除此之外,也可在
init.rc中setprop ro.camera.sound.forced这个property值,将其置为1
2、音量按键无法调节大小
这个的修改方式是设置camera service的AudioStreamType。具体如下
MediaPlayer* CameraService::newMediaPlayer(const char *file) {
MediaPlayer* mp = new MediaPlayer();
if (mp->setDataSource(NULL /* httpService */, file, NULL) == NO_ERROR) {
//修改type为system或者ring都可以
//mp->setAudioStreamType(AUDIO_STREAM_ENFORCED_AUDIBLE);
mp->setAudioStreamType(AUDIO_STREAM_SYSTEM);
mp->prepare();
} else {
ALOGE("Failed to load CameraService sounds: %s", file);
return NULL;
}
以上方案验证是ok的,可以完美的实现需求的要求。
更多精彩文章,请关注如下二维码对应公众号“代码视觉”。转载请联系授权!
代码视觉
网友评论