2015-06-22 27 views
5

我使用ExoPlayer庫,它需要一個表面,但我找不到任何方法,它檢索Textureview的基礎表面。有任何想法嗎?Textureview得到表面

的Surfaceview有一個方法:

surfaceView.getHolder().getSurface() 

還是有在TextureView沒有面?

回答

10

第一步是使用getSurfaceTexture()成員函數從TextureView中獲取SurfaceTexture。

SurfaceTexture surfaceTexture = textureView.getSurfaceTexture(); 

然後從構造Surface(SurfaceTexture surfaceTexture)將接受您的TextureView對象的表面紋理創建曲面對象。

Surface surface = new Surface(surfaceTexture); 

欲瞭解更多信息,請看看this issue report。它證實了通過以我描述的方式構造Surface對象,可以從TextureView和ExoPlayer中使用Surface。

+0

嘿,謝謝你,我這樣做了,仍然應用程序步入異常,還有什麼我不得不添加像聽衆? – user1767754

+1

我還沒有使用過ExoPlayer庫,但是你可能需要實現'TextureView.SurfaceTextureListener'來確保表面在你嘗試和訪問它之前是有效的。 – BrentM