2013-01-25 11 views
5

Eventuali duplicati:
Android: Keep MediaPlayer running during Activity screen orientation updateCome avere attività continuare streaming video quando viene cambiato l'orientamento

di Android app YouTube ha alcune caratteristiche:

Quando lo schermo del dispositivo è in verticale e si guarda un video e si cambia l'orientamento dello schermo in orizzontale, il video viene mostrato a schermo intero e l'elenco dei video correlati scompare. Continua a giocare senza riavviare o riposare.

Ritratto:

Paesaggio:

I problemi sono:

  • Quando creo i miei file di layout XML come "layout" e " layout-land ", my L'attività viene distrutta quando si passa da verticale a orizzontale. Devo ridimensionare il video.

  • Se si imposta Androidmanifest.xml per utilizzare android:configChanges="orientation", l'attività non viene distrutta, ma il layout non cambia.

Come posso ottenere questo risultato?

+0

@slhck Come posso cambiare il mio layout quando cambi da verticale a orizzontale? – tungdx

+0

@slhck Ma la risposta non è esattamente soddisfacente direi. –

+0

@ClassStacker Che purtroppo non rende meno una domanda duplicata. Ad esempio, potresti piazzare una taglia su di essa. tungdx, non lo so, dovresti riavviare l'attività per ridisegnare il layout. Forse puoi disabilitare selettivamente alcuni elementi del layout che non ti servono? – slhck

risposta

0

È necessario un thread per il lettore multimediale (beh, ne avrete già uno). La tua attività può determinare in modo affidabile se è stata distrutta a causa di una modifica della configurazione, vedere la mia risposta qui: How to save/restore(update) ref to the dialog during screen rotation?(I need ref in onCreate method of activity.)

Quindi non è male che la tua attività venga ricreata; tutto quello che devi fare è riattaccare il giocatore ad esso.

+0

Capisco la tua idea. Lo seguo ma ha un problema, quando ruoto il dispositivo, il layout cambia in layout-land e mediaplyer continua a funzionare, ma riesco a sentire il suono ma non riesco a vedere il video. Come posso ripararlo? Qui il mio codice: https://docs.google.com/file/d/0B4mVLTWlnazzUmpVVndOZDJaTTA/edit – tungdx

+0

Vedo che hai seguito con successo l'approccio schematico. Tuttavia, non hai collegato MediaPlayer alla tua attività appena creata.Dovrai chiamare 'setSurface()' sull'oggetto 'MediaPlayer' già esistente dopo il cambio di contesto. –

+0

@tungdx Ho dato una seconda occhiata al tuo codice. Ci si potrebbe aspettare che funzioni già. I registri hanno fornito qualche intuizione? –

0

Aggiungi android: configChanges = "orientation" nel tuo file AndroidManifest;

Add:

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 
} 

Nella vostra attività video;

+1

Wamasa: Non capisci il mio obiettivo. Comunque grazie! – tungdx

Problemi correlati