我想将Textureview添加到视图组中,并且该视图组将频繁调用attachToWindow和detachFromWindow。为了不显示黑色视图,我像这样保存了该纹理视图的表面纹理。
它对大多数手机有用,但对某些配备GPU Mali-T624〜860 / Intel HD Graphics for Atom x5的设备却没有用。这些无用设备的GlEs版本低于3.2(3.1 / 3.0)。
我该如何解决问题?
@Override
public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {
if (mMediaPlayer == null) {
initPlayer();
}
if (mSurfaceTexture == null) {
mSurfaceTexture = surface;
if (mSurface == null) {
mSurface = new Surface(mSurfaceTexture);
mMediaPlayer.setSurface(mSurface);
}
} else {
mVideoTextureView.setSurfaceTexture(mSurfaceTexture);
}
}
当方法不起作用时,我会找到一些日志。
queueBuffer:插槽1被丢弃,手柄= 0xaf850780
答案 0 :(得分:0)
您可以使用非常简单的自定义TextureView解决此问题。
创建一个TextureView的新子类,并覆盖“ destroyHardwareResources”的方法。请记住将此方法设为空。 然后您将得到想要的东西。
public class MyTextureView extends TextureView {
...
...
@Override
protected void destroyHardwareResources() {
}
...
...
}