2012-08-23 21 views
18

Ho trovato che il video registrato in modalità verticale ruoterà di 90 gradi. Così ho usato il seguente codice per ruotarlo quando si imposta il mediaRecorder:Il video registrato è ruotato di 90 gradi dopo il caricamento su Internet

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); 

L'anteprima è anche nel giusto orientamento quando ho usato il seguente codice nel metodo 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); 

In questo modo, il video registrato è orientato correttamente quando viene riprodotto sul dispositivo. Tuttavia, il video è ancora ruotato di 90 gradi dopo il caricamento su Internet. Qualcuno ha consigli su questo? Molte grazie.

+0

Hai trovato una soluzione per il tuo problema? –

+0

@LazyNinja, immagino di no, devo inviare le immagini ruotate e cambiarle in un secondo momento ... – Iam619

+0

Grazie per la risposta. Stavo affrontando lo stesso problema e volevo capire come risolverlo @ lam619 –

risposta

3

Alcuni lettori video considerano il suggerimento di orientamento durante la riproduzione di un video. Gli altri giocatori no. Basta provare a riprodurre questo video sul PC con Windows Media Player, Quick Time e Real Player e vedere le differenze.
Probabilmente il problema non è il tuo codice, ma il lettore video che stai utilizzando per visualizzare il tuo video.

3

Utilizzare mMediaRecorder.setOrientationHint(int) Questo funziona sicuramente. Potrebbe essere necessario lavorare sui vari orientamenti per ottenere valori int per tutte le telecamere in potrait e landscape.