C'è comunque che è possibile effettuare l'applicazione mantiene il buffer dopo orientamento senza la manipolazione manualmente le modifiche di configurazione.Assicurarsi buffer video è conservata dopo le modifiche di orientamento senza la manipolazione onConfiguration cambia manualmente
Lo scenario sostanzialmente:
Video tampone fino al punto più recente deve essere conservato quando cambia l'orientamento.
È necessario ricaricare un nuovo layout (perché portait e lanscape hanno layout diversi), Pertanto, il riavvio dell'attività per il ricaricamento di nuove risorse è il modo migliore che penso.
componente Il video è in un frammento.
Alternative che ho provato, ma non sono accettabili:
Il primo lavoro intorno è quello di salvare la posizione del video e dopo la vista è stato creato, utilizzare seekTo per andare all'ultima punto. Tuttavia, ciò causerà nuovamente il re-buffer del dispositivo.
Ho provato a giocare con framment setRetainInstance (true) e assicurarmi che il lettore multimediale non venga reinizializzato dopo i cambi di orientamento. Dopo ogni onCreateView, ho appena impostato il mediaplayer.setDisplay() per un nuovo surfaceholder. Sfortunatamente ciò causa che il lettore multimediale vada in stato di errore che a sua volta richiede la reimpostazione del lettore multimediale.
Qualche suggerimento/soluzione alternativa?
Modificato: ho visto da qualche parte in StackOverflow che è possibile cambiare il titolare superficie mediaplayer mentre il mediaplayer è attiva in 4.0+ Android. Tuttavia, sto sviluppando un'applicazione per Android 3.x.
vedere se la mia risposta [qui] (http://stackoverflow.com/questions/9987042/videoview-onresume-loses-buffered-portion-of-the-video/10368107#10368107) aiuta. – yorkw
@yorkw ma questo significa hackerare Android.jar. Destra? Qualunque modo tu sappia farlo per il mainstream? E anche per assicurarti che il Play Store lo accetti? – nembleton
O incidere un copia di VideoView (non l'android.jar reale) o costruire il proprio VideoView dal MediaPlayer, il punto chiave qui è quello di evitare correttamente la chiamata al metodo che causano ri-buffer o tampone pulito durante il cambio di configurazione (più preziosamente, in i metodi di callback del ciclo di vita di entrambe le attività e i metodi di callback di SurfaceHolder). – yorkw