Android mediarecorder只录制质量糟糕的视频

Android mediarecorder只录制质量糟糕的视频,android,android-mediaplayer,video-capture,video-processing,mediarecorder,Android,Android Mediaplayer,Video Capture,Video Processing,Mediarecorder,因此,我有下面的代码来做我的录音,质量是绝对可怕的。我想我一定是设置错了,但我试过两种方法。通过“CamcorderProfile”方式和“Manual”方式,您可以看到摄像机代码被注释掉了。两者给出了完全相同的结果 Camera _camera = Camera.Open (1); _camera.Unlock (); recorder = new MediaRecorder (); recorder.SetCamera (_camera); re

因此,我有下面的代码来做我的录音,质量是绝对可怕的。我想我一定是设置错了,但我试过两种方法。通过“CamcorderProfile”方式和“Manual”方式,您可以看到摄像机代码被注释掉了。两者给出了完全相同的结果

    Camera _camera = Camera.Open (1);
    _camera.Unlock ();

    recorder = new MediaRecorder ();

    recorder.SetCamera (_camera);

    recorder.SetAudioSource (AudioSource.Mic);    
    recorder.SetVideoSource (VideoSource.Camera); 

    recorder.SetOutputFormat (OutputFormat.Default);

    recorder.SetAudioEncoder (AudioEncoder.Default);
    recorder.SetVideoEncoder (VideoEncoder.Default);

    //CamcorderProfile p = CamcorderProfile.Get(0, CamcorderQuality.High);
    //recorder.SetProfile(p);

    recorder.SetOutputFile (path);       

    recorder.SetPreviewDisplay(video.Holder.Surface);

    recorder.Prepare ();
    recorder.Start ();
这很好,但问题是。录制时是预览窗口的图片,播放时是视频的图片。你说不出来,因为屏幕截图太糟糕了,但是没有一种颜色是正确的(它几乎没有颜色)。我认为颜色通道一定有某种问题。例如,这里是与genymotion“虚拟照相机”的另一个比较。这是版本。这是回放版本


但是,如果使用Android 5,则应使用新的摄像头。

此属性有助于提高视频质量:

mediaRecorder.setVideoEncodingBitRate(3000000);  //you may try varying the argument value

当然,在prepare()之前调用这个方法:)

你试过什么吗?我尝试了我发布的代码,结果是代码下面的内容。@CalvinMoss,蓝色文本是一个超链接。点击它,看看他指的是什么。晚会迟到了……但还是有人会觉得这很有用。。在这里检查我的答案1分钟视频=~31mb,比特率为3000000
mediaRecorder.setVideoEncodingBitRate(3000000);  //you may try varying the argument value