Java Android录制预览视频

Java Android录制预览视频,java,android,video,Java,Android,Video,现在,我正在使用TextureView中的camera(v1)显示一个只占屏幕一半的预览。我对这个预览应用了一些矩阵变换,使它更大,看起来更粗糙。现在我正试图录制一段用户在预览中看到的视频,但我所能做的只是从相机中获取一段正常的视频,而无需进行转换 下面是我如何录制视频的 private void initRecorder() throws IOException { File file = (new DirectoryManager(mContext).getNewVideoFile(

现在,我正在使用
TextureView中的
camera(v1)
显示一个只占屏幕一半的预览。我对这个预览应用了一些矩阵变换,使它更大,看起来更粗糙。现在我正试图录制一段用户在预览中看到的视频,但我所能做的只是从相机中获取一段正常的视频,而无需进行转换

下面是我如何录制视频的

private void initRecorder() throws IOException {
    File file = (new DirectoryManager(mContext).getNewVideoFile());

    if( mMediaRecorder == null ) {
        mMediaRecorder = new MediaRecorder();
        mCamera = getCurrentCamera();
        mCamera.unlock();
        //Surface surface = new Surface(surfaceTexture);
        mMediaRecorder.setCamera(mCamera);
        mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
        mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
        //mMediaRecorder.setPreviewDisplay(surface);
        mMediaRecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH));
        mMediaRecorder.setOutputFile(file.getPath());
    }
    if(!mStartRecording) {
        try {
            mMediaRecorder.prepare();
            mMediaRecorder.start();
            mStartRecording = true;
        }  catch (IOException e) {
            e.printStackTrace();
        }
    } else {
        mStartRecording = false;
        try {
            mMediaRecorder.stop();
            mMediaRecorder.reset();
            mMediaRecorder.release();
        }
        catch (Exception e){
            e.printStackTrace();
        }
        mMediaRecorder = null;
    }

}
我还试着用
MediaRecorder.VideoSource.SURFACE
来代替它,运气也一样


如有任何帮助/提示,我们将不胜感激。

您是否正在录制屏幕?像截屏视频吗?不,我的预览只占屏幕的一半(我将添加它作为编辑),我不想只录制它。录制屏幕(或其中的一部分)会很困难。自从棒棒糖,有一个MediaProjectionAPI,我从来没有使用过它,但也许这可以帮助: