2012-08-23 58 views
18

我發現人像模式錄製的視頻會旋轉90度。因此,我用下面的代碼轉動它時,我設置mediaRecorder:上傳到互聯網後錄製的視頻旋轉90度

if (this.getResources().getConfiguration().orientation !=Configuration.ORIENTATION_LANDSCAPE) 
{ 
    mediaRecorder.setOrientationHint(270); 
} 
else 
{ 
    mediaRecorder.setOrientationHint(0); 
} 

mediaRecorder.setOutputFile(file_name);     
mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT); 
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT); 

預覽也是正確的方向,因爲我曾經在surfaceCreated方法如下代碼:

Camera.Parameters params = camera.getParameters(); 

if (this.getResources().getConfiguration().orientation 
    !=Configuration.ORIENTATION_LANDSCAPE) 
{ 
    camera.setDisplayOrientation(90); 

} 
else 
{ 
    camera.setDisplayOrientation(0);     
} 

    params.setRotation(90); 
    camera.setParameters(params); 

這樣,錄製的視頻在設備上播放時處於正確的方向。然而,上傳到互聯網後,視頻仍然旋轉90度。有沒有人有此建議?非常感謝。

+0

您是否找到針對您的問題的解決方案? –

+0

@LazyNinja,我想不是,我必須發送旋轉的圖像,並稍後將其更改... – Iam619

+0

感謝您的回覆。我面臨着同樣的問題,並想弄清楚如何解決它@ lam619 –

回答

3

某些視頻播放器在播放視頻時會考慮方向提示。其他球員不會。只要嘗試使用Windows Media Player,Quick Time和Real Player在PC中播放此視頻並查看其差異。
可能問題不在於您的代碼,而在於您用來查看視頻的視頻播放器。

3

使用mMediaRecorder.setOrientationHint(int) 這絕對有效。 您可能需要使用各種方向來獲取potrait和landscape中所有相機的int值。