【问题标题】:mediarecorder.setVideoSize() fails with maximum resolutionmediarecorder.setVideoSize() 以最大分辨率失败
【发布时间】:2013-05-28 06:18:17
【问题描述】:

我试图通过

找到相机分辨率
final Parameters p = this.camera.getParameters();
List<Size> previewSizes=p.getSupportedPreviewSizes();

并设置媒体记录器的视频大小

this.mediaRecorder.setVideoSize(previewSizes.get(0).width, previewSizes.get(0).height);

我曾经以横向模式录制视频。

MediaRecorder 无法以这种高分辨率录制视频。

当我尝试使用较低的分辨率时,它正在录制。

我们设置的屏幕显示尺寸和视频尺寸有问题吗?

【问题讨论】:

    标签: android android-mediarecorder


    【解决方案1】:

    试试这样的

    getBestPreviewSize () 将根据提供的宽度和高度确定可能的最佳分辨率。显然缺少主要的媒体记录器和摄像头设置详细信息,但您可以很容易地找到它们,而且您可能已经这样做了

    ...
        Camera.size size = getBestPreviewSize(720,480, mCamera.getParameters());
    
        mMediaRecorder.setVideoSize(size.width,size.height);
        mMediaRecorder.setVideoFrameRate(15);
        mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
        mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
    ...
    
      private Camera.Size getBestPreviewSize(int width, int height, Camera.Parameters parameters) {
        Camera.Size result=null;
    
        for (Camera.Size size : parameters.getSupportedPreviewSizes()) {
            if (size.width<=width && size.height<=height) {
                if (result==null) {
                    result=size;
                } else {
                    int resultArea=result.width*result.height;
                    int newArea=size.width*size.height;
    
                    if (newArea>resultArea) {
                        result=size;
                    }
                }
            }
        }
        return(result);
    }  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-02
      • 1970-01-01
      • 2015-07-24
      • 2011-09-12
      • 2014-01-24
      • 1970-01-01
      相关资源
      最近更新 更多