2014-10-12 8 views
6

Sono un noob per lo sviluppo Android e sto cercando di implementare il libstreamingexample 3 sample project. Tutto funziona bene, tranne per il fatto che non sono stato in grado di modificare l'orientamento dell'anteprima video per eseguire il prtrait. Indipendentemente dalle impostazioni che cambio, rifiuta di ruotare e rimane in modalità orizzontale. So che è possibile ottenere l'orientamento verticale perché spydroid utilizza libstreaming e visualizza in orientamento verticale Qualsiasi aiuto è molto apprezzato.Come ruoto l'anteprima video di libstreaming?

mio codice rilevante:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); //<--Does Nothing 

    // Configures the SessionBuilder 
    mSession = SessionBuilder.getInstance() 
      .setContext(getApplicationContext()) 
      .setAudioEncoder(SessionBuilder.AUDIO_AAC) 
      .setAudioQuality(new AudioQuality(8000, 16000)) 
      .setVideoEncoder(SessionBuilder.VIDEO_H264) 
      .setSurfaceView(mSurfaceView) 
      .setPreviewOrientation(90) //<--Does Nothing 
      .setCallback(this) 
      .build(); 
+0

Hai provato a cambiare l'orientamento attraverso il manifest? – Abdellah

+0

Sì, sì, ma non funziona neanche io. –

risposta

5

Nel codice di esempio 3, sembra che l'orientamento viene risolto nel manifest..just lasciare fuori vuoto (non anche impostato ritratto)

 <activity 
     android:windowSoftInputMode="stateHidden" 
     android:name="net.majorkernelpanic.example3.MainActivity" 
     android:label="@string/app_name" 
     android:theme="@android:style/Theme.DeviceDefault.Wallpaper.NoTitleBar"> 

Ciò consentirà alla tua attività di cambiare orientamento.

Per forzare l'orientamento, aggiungere le righe al di sotto alla fine del onCreate (dopo selectQuality(); linea)

mSession.setPreviewOrientation(90); 
    mSession.configure(); 
+0

Ho anche avuto problemi con lo stesso problema. Sfortunatamente, quando ho provato questa soluzione, è ancora visibile in orizzontale. Anche l'impostazione dell'orientamento come verticale in manifest non ha funzionato. – DollaBill

+0

@DollaBill Ho provato l'esempio 3 sull'emulatore e quando ho ruotato l'emulatore in verticale, l'anteprima è cambiata in verticale (con le modifiche precedenti). – ashoke

+0

Quando eseguo un esempio su un dispositivo, esso risponde alle modifiche di configurazione/orientamento. Ma visualizza l'anteprima come orizzontale quando il dispositivo viene tenuto in posizione verticale e visualizza l'anteprima come paesaggio capovolto quando il dispositivo viene tenuto in orizzontale. – DollaBill

2

Esplora "libstreaming" libreria poi vai a:

  1. classe VideoStream.java
  2. Trova il metodo createCamera(), sostituisci "mCamera.setDisplayOrientation (mOrientation);" con mCamera.setDisplayOrientation (90);
  3. Trova updateCamera(), sostituire "mCamera.setDisplayOrientation (mOrientation);" con "mCamera.setDisplayOrientation (90);"
+0

Funziona ma perché? – nthapa13

Problemi correlati