簡體   English   中英

如何將MediaRecorder中的視頻方向更改為縱向

[英]how to change video orientation in MediaRecorder to portrait

當我通過MediaRecorder錄制視頻時,它始終以橫向模式錄制,無論實際的設備方向如何。 如何強制MediaRecorder / Camera使用真正的方向?

有關更多信息,請參閱Camera.Parameters.setRotation()

有一個示例,而不是調用setRotation(旋轉)嘗試在錄制視頻時調用mediaRecorder.setOrientationHint(旋轉)。

添加以下兩行代碼:

Camera.setDisplayOrientation(90); // use for set the orientation of the preview
mRecorder.setOrientationHint(90); // use for set the orientation of output video

之前:

mRecorder.setCamera(mCamera);

完整示例:

mRecorder = new MediaRecorder();

// Both are required for Portrait Video
mCamera.setDisplayOrientation(90);
mRecorder.setOrientationHint(90);

// Step 1: Unlock and set camera to MediaRecorder
mCamera.unlock();
mRecorder.setCamera(mCamera);

// Step 2: Set sources
mRecorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
mRecorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);

// Step 3: Set a CamcorderProfile (requires API Level 8 or higher)
mRecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_480P));

看一下這里的文檔

http://developer.android.com/guide/topics/media/camera.html#capture-video

這個例子最常見的陷阱是setCamera()。 您必須在制作MediaRecorder后立即設置相機,否則您將收到錯誤。

    Camera mCamera = getCameraInstance();
    // adjust the camera the way you need
    mCamera.setDisplayOrientation(90);

    MediaRecorder recorder = new MediaRecorder();

    mCamera.unlock();
    recorder.setCamera(mCamera);

    recorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
    recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
    recorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH));
    recorder.setOutputFile(filePath);

    // add any limits
    recorder.setMaxDuration(50000); // 50 seconds
    recorder.setMaxFileSize(5000000); // Approximately 5 megabytes 

我希望這可以幫助別人。 祝好運!!

我之前也遇到過這個問題。 我發現你可以使用函數setOrientationHint (API 9)。 在調用MediaRecorder.prepare()之前調用此函數。 您可以設置輸出視頻的方向度。

希望它有所幫助,祝你好運!

 mMediaRecorder = new MediaRecorder();
        mServiceCamera.setDisplayOrientation(90);
        mMediaRecorder.setOrientationHint(90);
        mServiceCamera.unlock();
        mMediaRecorder.setCamera(mServiceCamera);
        mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
        mMediaRecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM