Android 是否可以在没有音频源的情况下使用CamcorderProfile?
我的代码:Android 是否可以在没有音频源的情况下使用CamcorderProfile?,android,video,record,Android,Video,Record,我的代码: mediaRecorder = new MediaRecorder(); mediaRecorder.setCamera(camera); mediaRecorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT); mediaRecorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT); CamcorderProfile profile = CamcorderProfil
mediaRecorder = new MediaRecorder();
mediaRecorder.setCamera(camera);
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
CamcorderProfile profile = CamcorderProfile.get(QUALITY_LOW);
mediaRecorder.setProfile(profile);
它起作用了。
但我只需要录制视频
如果我不使用mediaRecorder.setAudioSource(),mediaRecorder.setProfile()将失败,并出现IllegalStateException
有什么想法吗?来自:
公共档案(摄像机档案)
因为:API级别8使用这些设置
从摄像机配置文件对象获取
记录。这种方法应该是
在视频和音频之后调用
源已设置,并且在
setOutputFile()
从
每个概要文件指定以下内容
一组参数:
- 文件输出格式
- 视频编解码器格式
- 视频比特率(以比特/秒为单位)
- 视频帧速率(以每秒帧数为单位)
- 视频帧宽度和高度
- 音频编解码器格式音频比特率(位/秒)
- 音频采样率
- 用于录制的音频通道数
profile.quality >= CamcorderProfile.QUALITY_TIME_LAPSE_LOW //1002
&&
profile.quality <= CamcorderProfile.QUALITY_TIME_LAPSE_QVGA //1007
这确实应该适用于摄像机产品的任何裁剪;e、 g.如果您不想使用默认视频比特率,但使用不同的比特率(并非所有配置文件参数都可以更改,有些参数被四舍五入到最接近的可能值),请在回答中添加一些说明,以便对OP和其他参数有所帮助
if (getIsMuteShooting()) { // with out audio
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mRecorder.setVideoFrameRate(profile.videoFrameRate);
mRecorder.setVideoSize(profile.videoFrameWidth, profile.videoFrameHeight);
mRecorder.setVideoEncodingBitRate(profile.videoBitRate);
mRecorder.setVideoEncoder(profile.videoCodec);
} else {
mRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mRecorder.setVideoFrameRate(profile.videoFrameRate);
mRecorder.setVideoSize(profile.videoFrameWidth, profile.videoFrameHeight);
mRecorder.setVideoEncodingBitRate(profile.videoBitRate);
mRecorder.setAudioEncodingBitRate(profile.audioBitRate);
mRecorder.setAudioChannels(profile.audioChannels);
mRecorder.setAudioSamplingRate(profile.audioSampleRate);
mRecorder.setVideoEncoder(profile.videoCodec);
mRecorder.setAudioEncoder(profile.audioCodec);
}
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
CamcorderProfile profile = CamcorderProfile.get(CamcorderProfile.QUALITY_480P);
mediaRecorder.setOutputFormat(profile.fileFormat);
mediaRecorder.setVideoFrameRate(profile.videoFrameRate);
mediaRecorder.setVideoSize(profile.videoFrameWidth, profile.videoFrameHeight);
mediaRecorder.setVideoEncodingBitRate(profile.videoBitRate);
mediaRecorder.setVideoEncoder(profile.videoCodec);