
录制简短视频时必须注意的参数
mCamera.unlock();
if (mMediaRecorder == null) {
mMediaRecorder = new MediaRecorder();
mMediaRecorder.setOrientationHint(90);
}
if (isCameraFrontFacing()) {
mMediaRecorder.setOrientationHint(270);
}
// Step 1: Unlock and set camera to MediaRecorder
mMediaRecorder.reset();
mMediaRecorder.setCamera(mCamera);
// Step 2: Set sources
mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.VOICE_RECOGNITION);
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
// Step 3: Set a Camera Parameters
mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
/* Fixed video Size: 640 * 480*/
mMediaRecorder.setVideoSize(optimalPicSize.width, optimalPicSize.height);
/* Encoding bit rate: 1 * 1024 * 1024*/
mMediaRecorder.setVideoEncodingBitRate((int) ((1.5) * 1024 * 1024));
mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
mMediaRecorder.setAudioSamplingRate(44); // 设置音频采样率为44
mMediaRecorder.setAudioEncodingBitRate(64); // 设置音频比特率为64
mMediaRecorder.setAudioChannels(1); // 设置录制的音频通道数
// Step 4: Set output file
mMediaRecorder.setOutputFile(savePath);
步骤1:SetCamera参数可以在预览和记录中快速切换,避免重新装载相机对象。在某些Android手机自己的相机程序中,读者可以体验到预览和录制的简短口吃。当记录方向为垂直时(肖像)时,使用mmediarecorder.setorientationhint(90)。它可以沿顺时针方向旋转90度的视频文件。如果未设置此项目,则播放视频时屏幕将旋转90度。但是,更重要的是,即使设置了此项目,屏幕仍将在某些玩家上旋转90度(例如,将通常在电话上播放的视频导入到PC上进行播放,或嵌入H5的视频标签中)。为什么?请注意,一些视频播放器可能会选择忽略播放期间视频中的组成矩阵。那么,如何在所有球员上朝着正常的方向发挥作用呢?等待片刻,并在将来特别解释。步骤2:setAudioSource(Mediarecorder.audiosource.voice_recognition),语音_RECOGNITION将根据语音识别的需求进行一些调整,当然,系统需要得到系统的支持。
SetVideOsource自然是VideoSource.Camera,但是必须在设置编码器之前设置这两个设置,不需要说明。步骤3:SetOutputFormat需要在步骤2之后和准备之前()。这使用outputformat.mpeg_4格式。 SetVideosize需要权衡许多因素,主要包括三个方面:Mediarecorder支持的记录尺寸,视频文件的大小以及与不同的Android模型的兼容性。 640 * 480(微信短视频的大小为320 * 240),文件大小在500-1000kb之间,市场上的99%以上支持此记录大小。 setVideoencodingBitrate与视频的清晰度有关。设置此参数需要权衡清晰度和文件大小之间的关系。如果它太高,则文件不容易传输;如果它太低,则文件的清晰度很低,并且识别率很低。需要根据实际业务方案灵活调整它。 setVideoEncoder使用H264编码。可以比较不同编码(例如MPEG4,H263,H264)之间的差异。在实际使用中,H264的压缩率相对较高,因此建议使用。 SetAudioEncoder使用AudioEncoder.aac,此设置主要考虑其普遍性和兼容性。
步骤4:setMaxFilesize指定录制文件的大小限制,当然也可以限制其最大记录时间。 SetOutputFile指定输出视频的路径。 setonErlistener指定错误侦听器。摘要:代码的顺序非常重要。如果代码未按顺序执行,则会引发异常。必须设置setVideoEncodingBitrate。捕获的视频未设置该值非常模糊。参考文档:
常见问题解答录制视频
©版权属于作者。请联系作者重印或内容合作。