Devo essere in grado di ruotare un video sullo schermo, così ho creato un TextureView personalizzato che fornisce un livello di comodità su un MediaPlayer simile a quello dell'attuale implementazione di VideoView. This Android blog post dice il seguente su TextureView:Android TextureView vs VideoView Performance
Poiché il contenuto di un SurfaceView non vive nella finestra dell'applicazione, essa non può essere trasformata (spostato, in scala, ruotata) in modo efficiente. Ciò rende difficile l'uso di un SurfaceView all'interno di un ListView o ScrollView. SurfaceView inoltre non può interagire correttamente con alcune funzionalità del toolkit dell'interfaccia utente come i bordi di dissolvenza o View.setAlpha().
Per risolvere questi problemi, Android 4.0 introduce un nuovo widget chiamato TextureView che si basa sulla pipeline di rendering 2D con accelerazione hardware e SurfaceTexture. TextureView offre le stesse funzionalità di SurfaceView ma, a differenza di SurfaceView, si comporta come una vista normale. Ad esempio, puoi utilizzare TextureView per visualizzare una scena OpenGL o un flusso video. Lo stesso TextureView può essere animato, scrollato, ecc.
Tuttavia, sembra che TextureView stia cercando di riprodurre i video. Il dispositivo di destinazione su cui sto eseguendo il test ha una CPU Dual Core Rockchip RK3066 da 1,2 Ghz, una GPU Mali-400 quad core (ARM) e 1 GB di RAM. Lo stesso codice che utilizza VideoViews su questo dispositivo funziona bene, ma TextureViews "balbetta" durante la riproduzione o non viene visualizzato affatto (riquadro nero con riquadri bianchi in alto a sinistra), a seconda del dispositivo specifico. TextureViews funziona correttamente sull'emulatore utilizzando il "dispositivo" x86 fornito da Intel.
È previsto un calo delle prestazioni, oppure dovrei cercare altrove per trovare il problema? Grazie
Non so molto del tuo setup particolare. Vedere il tuo sml e alcuni java correlati potrebbe aiutare. Ci sono pesi applicati alla vista texture? Quali avvisi vengono lanciati nell'editor UI? Potrebbero aiutarti. –
sei in grado di risolvere il problema o è meglio evitare di usare textureview con mediaplayer? –
abbiamo finito per non utilizzare 'TextureView' –