android视频录制问题

最近项目要做一个类似于微信下拉拍小视频的控件,要求在竖屏拿着手机的时候在预览界面里面看到的画面宽高比是4:3,输出的视频也是宽高比是4:3,从网上扒下来的Demo关键代码如下:

 private void initRecord() throws IOException {
        mMediaRecorder = new MediaRecorder();
        mMediaRecorder.reset();
        if (mCamera != null)
            mMediaRecorder.setCamera(mCamera);
        mMediaRecorder.setOnErrorListener(this);
        mMediaRecorder.setPreviewDisplay(mSurfaceHolder.getSurface());
        mMediaRecorder.setVideoSource(VideoSource.CAMERA);// 视频源
        mMediaRecorder.setAudioSource(AudioSource.MIC);// 音频源
        mMediaRecorder.setOutputFormat(OutputFormat.MPEG_4);// 视频输出格式
        mMediaRecorder.setAudioEncoder(AudioEncoder.AMR_NB);// 音频格式
        mMediaRecorder.setVideoSize(320, 240);// 设置分辨率:
        // mMediaRecorder.setVideoFrameRate(16);// 
        mMediaRecorder.setVideoEncodingBitRate(1 * 1024 * 512);// 设置帧频率
        mMediaRecorder.setOrientationHint(90);// 输出旋转90度,保持竖屏录制 
        mMediaRecorder.setVideoEncoder(VideoEncoder.MPEG_4_SP);// 视频录制格式
        // mediaRecorder.setMaxDuration(Constant.MAXVEDIOTIME * 1000);
        mMediaRecorder.setOutputFile(mVecordFile.getAbsolutePath());
        mMediaRecorder.prepare();
        try {
            mMediaRecorder.start();
        } catch (IllegalStateException e) {
            e.printStackTrace();
        } catch (RuntimeException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    //设置摄像头的参数
     private void setCameraParams() {
        if (mCamera != null) {
            Parameters params = mCamera.getParameters();
            params.set("orientation", "landscape");     //此处设置成landscape、portrait都无效
            mCamera.setParameters(params);
        }
    }

使用SurfaceView进行视频的拍摄时预览时虽然做成了4:3的宽高比,但是画面的高度被压缩了,没有达到预期的效果,输出的视频宽高比也不是4:3,依旧是系统相机的宽高比。

设置mMediaRecorder.setOrientationHint(90)无效

设置Camera的参数 params.set("orientation", "landscape");    设置为portrait依旧无效。


求助大神,帮忙看看怎么做,谢谢。

需求:竖屏拿手机时预览画面宽高比是4:3,录制的视频宽高也是4:3。做到跟微信下拉拍一个效果。

布鲁弗
浏览 2615回答 1
1回答

布鲁弗

居然没人接招
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android