2015-06-11 15 views
5

Possiedo un'origine dati multimediale e sto riproducendo i media utilizzando Android MediaPlayer.Android - rendering dello stesso video su più viste

Come è possibile visualizzare l'uscita video da MediaPlayer a più viste nello stesso Activity, esistono altri modi per farlo?

Voglio che la parte video del file multimediale venga resa in due diverse viste senza leggere più volte dall'origine dati.

Codice attuale:

TextureView mTextureView1; 
TextureView mTextureView2; 

mTextureView1.setSurfaceTextureListener(new TextureView.SurfaceTextureListener() { 
     @Override 
     public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) { 
      mMediaPlayer = new MediaPlayer(AppActivity.this); 
      try { 
       mMediaPlayer.setDataSource(getApplicationContext(), Uri.parse(path)); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      mMediaPlayer.setSurface(new Surface(surface)); 
      mMediaPlayer.setLooping(true); 
      mMediaPlayer.prepareAsync(); 

      mMediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
       @Override 
       public void onPrepared(MediaPlayer mp) { 
        mp.start(); 
       } 
      }); 
     } 
+0

hai mai avuto questo? –

risposta

2

Stai giocando in una TextureView, che riceve i fotogrammi in una SurfaceTexture e poi li rende sullo strato View UI.

Un approccio consiste nel creare il proprio SurfaceTexture per ricevere i frame e quindi utilizzare OpenGL ES per eseguire il rendering dei frame come desiderato. Per un esempio, vedere l'attività "trama dalla fotocamera" in Grafika. Può posizionare, ruotare e scalare l'input dalla telecamera; puoi facilmente modificarlo per ricevere input da MediaPlayer e renderizzare la texture due volte su SurfaceView.

Se si desidera renderlo su diverse viste, è possibile impostare un paio di TextureViews e renderle. Utilizzare un singolo contesto EGL con una superficie EGL diversa per ciascuna vista.

+0

Ecco un link diretto alla trama dalla fotocamera: https://github.com/google/grafika/blob/master/src/com/android/grafika/TextureFromCameraActivity.java – Aggressor

Problemi correlati