use*_*926 21 audio android android-camera
是否有任何方法可以在Android(非root手机)中静音相机快门声音?
拍照时我使用此代码静音我的音频声音:
AudioManager mgr = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
int streamType = AudioManager.STREAM_SYSTEM;
mgr.setStreamSolo(streamType, true);
mgr.setRingerMode(AudioManager.RINGER_MODE_SILENT);
mgr.setStreamMute(streamType, true);
Run Code Online (Sandbox Code Playgroud)
我把声音静音,手机静音.
mCamera.takePicture(null, null, photoCallback);
Run Code Online (Sandbox Code Playgroud)
然后拍照
它正在努力HTC HERO, HTC Desire, Motorola ME860, MotoA953.但是,当我测试Samsung Tab p1000和Sony Experia R800i,它不工作.还有其他工作吗?
小智 8
试试这段代码:
AudioManager manager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
if(TextUtils.equals(muteMode, "mute")){
manager.setStreamVolume(AudioManager.STREAM_SYSTEM, 0 , AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
}else{
manager.setStreamVolume(AudioManager.STREAM_SYSTEM, manager.getStreamMaxVolume(AudioManager.STREAM_SYSTEM) , AudioManager.FLAG_ALLOW_RINGER_MODES);
}
//here continue to take picture...
Run Code Online (Sandbox Code Playgroud)
不要使用AudioManager.setStreamMute()方法,因为在2.3以下版本的android上有一个已知问题..
从API级别17(4.2)开始,如果手机制造商支持,则有一种正确,可靠的方法.
首先,检测是否可以以编程方式禁用快门声音,然后禁用它
Camera.CameraInfo info = new Camera.CameraInfo();
Camera.getCameraInfo(id, info);
if (info.canDisableShutterSound) {
mCamera.enableShutterSound(false)
}
Run Code Online (Sandbox Code Playgroud)
您需要在调用中将id设置为相应的摄像机ID Camera.getCameraInfo,或者在0到Camera.getNumberOfCameras()-1 的循环中将它们全部禁用.
该开发者文档建议您在地方快门声音的播放另一种声音,但你并非必须.
| 归档时间: |
|
| 查看次数: |
20903 次 |
| 最近记录: |