摄像机输入:不支持的参数

时间:2011-12-22 03:40:25

标签: java android mediarecorder

首先,请原谅已经问过一个或者可以轻松找到谷歌。我发布这个,因为我只有有限的时间。这是录制音频和视频的代码。

        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

而且,显示预览的表面视图似乎已冻结。它显示了最后拍摄的图像帧。此外,视频&音频似乎没有录音。会有什么问题?非常感谢任何帮助!

注:

我在Android 2.2的三星Galaxy Tab上尝试这个。

评论以下两行似乎也没有解决问题

        videoRecorder.setVideoSize(800, 600);
        videoRecorder.setVideoFrameRate(30);

在清单文件上设置了以下权限。

<uses-permission android:name="android.permission.CAMERA"></uses-permission>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECORD_AUDIO"/>

1 个答案:

答案 0 :(得分:2)

如果您看到Supported Media Formats,对于MPEG-4 SP,您需要使用3GP(THREE_GPP)输出格式。
所以你可以试试

videoRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);