2015-06-22 8 views
5

Ich verwende die ExoPlayer-Bibliothek, die eine Oberfläche erwartet, aber ich konnte keine Methode finden, die die zugrunde liegende Oberfläche der Texturansicht abruft. Irgendwelche Ideen?Texturansicht Oberfläche erhalten

Die Surface hat eine Methode dafür:

surfaceView.getHolder().getSurface() 

Oder gibt es keine Oberfläche in TextureView?

Antwort

10

Der erste Schritt besteht darin, das SurfaceTexture von der TextureView mit der getSurfaceTexture() Elementfunktion abzurufen.

SurfaceTexture surfaceTexture = textureView.getSurfaceTexture(); 

erstellen Dann wird die Oberfläche Objekt aus dem Konstruktor Surface(SurfaceTexture surfaceTexture), die die SurfaceTexture von Ihrem TextureView Objekt akzeptiert.

Surface surface = new Surface(surfaceTexture); 

Weitere Informationen finden Sie unter this issue report. Es bestätigt, dass es möglich ist, die Oberfläche aus einer TextureView mit ExoPlayer zu erstellen, indem ich das Surface-Objekt in der beschriebenen Weise konstruiere.

+0

Hey danke, ich hatte es so, und immer noch tritt die App in eine Ausnahme, gibt es noch etwas, das ich hinzufügen muss, wie ein Zuhörer? – user1767754

+1

Ich habe die ExoPlayer-Bibliothek nicht verwendet, aber Sie müssen möglicherweise den 'TextureView.SurfaceTextureListener' implementieren, um sicherzustellen, dass die Oberfläche gültig ist, bevor Sie versuchen und darauf zugreifen. – BrentM

Verwandte Themen