如何找到TextureView将在Android设备上工作?

时间:2017-07-17 11:47:50

标签: android gpu opengl-es-2.0 surfaceview textureview

我正在实施 IPTV 项目,因此我有TextureView播放视频。但在某些情况下,由于机顶盒设备中的某些硬件加速窗口问题,它没有图片而只播放音频。

所以我的问题是如何找出TextureView将在Android设备上运行?

我的另一个问题是:

如何找到一个Android设备将正确运行TextureView

提前致谢

2 个答案:

答案 0 :(得分:0)

我可以建议你看一下Google Exoplayer 2吗?我一直在将它用于Android TV项目等等,它似乎工作得非常好。它接受身份验证密钥和许多格式,如渐进式HLS等。

演示应用here

答案 1 :(得分:0)

  

这对于新手android开发人员或将看到此内容的任何人都是有益的。

就我而言,在OnCreate方法中使用此代码段有助于我找出哪些设备可以使用SurfaceView

    if (
            GLES20.glGetString(GLES20.GL_RENDERER) == null ||
                    GLES20.glGetString(GLES20.GL_VENDOR) == null ||
                    GLES20.glGetString(GLES20.GL_VERSION) == null ||
                    GLES20.glGetString(GLES20.GL_EXTENSIONS) == null ||
                    GLES10.glGetString(GLES10.GL_RENDERER) == null ||
                    GLES10.glGetString(GLES10.GL_VENDOR) == null ||
                    GLES10.glGetString(GLES10.GL_VERSION) == null ||
                    GLES10.glGetString(GLES10.GL_EXTENSIONS) == null) {
        // this device can not use TextureView
    } else {
        // this device can use TextureView
    }

要了解SurfaceViewTextureView之间的区别,请参见this link