有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

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

    videoRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);