我正在实施 IPTV 项目,因此我有TextureView
播放视频。但在某些情况下,由于机顶盒设备中的某些硬件加速窗口问题,它没有图片而只播放音频。
所以我的问题是如何找出TextureView
将在Android设备上运行?
我的另一个问题是:
如何找到一个Android设备将正确运行TextureView
?
提前致谢
答案 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
}
要了解SurfaceView
和TextureView
之间的区别,请参见this link。