如何确定 TextureView 可以在 android 设备上工作?

how to find out TextureView will work on an android device?

我正在实施一个 IPTV 项目,所以我有一个 TextureView 可以播放视频。但在某些情况下,由于 机顶盒 设备中的一些 硬件加速 window 问题,它没有图片,只能播放音频。

所以我的问题是如何确定 TextureView 可以在 android 设备上运行?

我的另一个问题是:

如何找出 android 设备 运行 TextureView 正确?

提前致谢

我可以建议你看看Google Exoplayer 2吗?我一直在将它用于 Android 电视项目等,它似乎工作得很好。它接受授权密钥和许多格式,如渐进式 HLS 等。

演示应用程序 here.

This could be beneficial for novice android developers or anyone who will see this.

就我而言,在 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