java摄像头输入:不支持的参数
首先,请原谅它已经被问到了,或者可以很容易地通过谷歌找到。我发布这个,因为我只有有限的时间。下面是录制音频和视频的代码
stopPreview();
Log.d("streamer", "Start camera.....");
videoRecorder = new MediaRecorder();
videoRecorder.setPreviewDisplay(surfaceView.getHolder()
.getSurface());
videoRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
videoRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
videoRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP);
videoRecorder.setVideoSize(800, 600);
videoRecorder.setVideoFrameRate(30);
videoRecorder.setOutputFile(videoPipe.getOutput());
videoRecorder.prepare();
videoRecorder.start();
Log.d("streamer", "Start camera.....action.......");
Log.d("streamer", "Start mic.....");
audioRecorder = new MediaRecorder();
audioRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
audioRecorder.setOutputFormat(MediaRecorder.OutputFormat.RAW_AMR);
audioRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
audioRecorder.setOutputFile(audioPipe.getOutput());
audioRecorder.prepare();
audioRecorder.start();
Log.d("streamer", "Start mic.....action");
但是,当我运行它时,上面的代码在logcat上生成以下内容
12-22 09:05:43.456: E/CameraInput(2407): Unsupported parameter(x-pvmf/media-input-node/cap-config-interface;valtype=key_specific_value)
12-22 09:05:43.456: E/CameraInput(2407): VerifiyAndSetParameter failed on parameter #0
.....
12-22 09:05:43.456: E/CameraInput(2407): VerifiyAndSetParameter failed on parameter #0
12-22 09:05:43.464: E/MediaProfiles(2407): mCodec : 2
12-22 09:05:43.464: E/MediaProfiles(2407): mCodec : 1
12-22 09:05:43.464: E/MediaProfiles(2407): mCodec : 3
而且,显示预览的曲面视图似乎已冻结。它显示图像的最后一帧。此外,录影带及;音频似乎没有录制。有什么问题吗?非常感谢您的帮助
注:
我正在用安卓2.2在三星Galaxy Tab上试用
评论以下两行似乎也不能解决问题
videoRecorder.setVideoSize(800, 600);
videoRecorder.setVideoFrameRate(30);
在清单文件上设置了以下权限
<uses-permission 安卓:name="安卓.permission.CAMERA"></uses-permission>
<uses-permission 安卓:name="安卓.permission.INTERNET" />
<uses-permission 安卓:name="安卓.permission.RECORD_AUDIO"/>
# 1 楼答案
如果您看到Supported Media Formats,对于MPEG-4 SP,您需要使用3GP(
THREE_GPP
)输出格式所以你可以试试看