现象
录制视频时,选择静音录制,录制完成后使用谷歌相册播放视频,提示视频无法播放,但是视频可以正常播放。
分析
在选择静音录制时没有设置音源,所以录制时无音轨。播放时如果没有对无音轨视频做处理,播放时会有错误提示。
解决方案
在选择静音时,同选择MIC录音设置音源,并通过AudioManager设置MIC静音,以此实现静音录制视频。
设置setMicrophoneMute需要在清单文件注册权限,否则无法修改
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
静音MIC实现:
/**
* Mute the microphone
*/
private void setMicMute() {
Log.i(TAG, "setMicMute");
mAudioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
if (mAudioManager != null) {
mIsMicMuted = mAudioManager.isMicrophoneMute();
Log.i(TAG, "mIsMicMuted = " + mIsMicMuted);
mAudioManager.setMicrophoneMute(true);
}
}
/**
* restore MIC state
*/
private void restoreMic() {
Log.i(TAG, "restoreMic");
if (mAudioManager != null) {
mAudioManager.setMicrophoneMute(mIsMicMuted);
mAudioManager = null;
}
}
在MediaRecorder.start()后调用setMicMute;在MediaRecorder.stop()后恢复MIC之前的状态。