获取 TextureView 第一帧不显示
时间: 2023-08-07 10:04:04 浏览: 130
Android使用MediaPlayer和TextureView实现视频无缝切换
获取 TextureView 第一帧不显示的原因可能是因为 SurfaceTexture 还没有准备好,或者因为渲染线程还没有开始渲染。可以通过监听 SurfaceTextureListener 的 onSurfaceTextureAvailable 方法,在 SurfaceTexture 可用时再获取第一帧。具体实现可以参考下面的代码示例:
```java
textureView.setSurfaceTextureListener(new TextureView.SurfaceTextureListener() {
@Override
public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {
// SurfaceTexture 可用时获取第一帧
Bitmap bitmap = textureView.getBitmap();
imageView.setImageBitmap(bitmap);
}
@Override
public void onSurfaceTextureSizeChanged(SurfaceTexture surface, int width, int height) {
}
@Override
public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) {
return false;
}
@Override
public void onSurfaceTextureUpdated(SurfaceTexture surface) {
}
});
```
在 onSurfaceTextureAvailable 方法中调用 TextureView 的 getBitmap 方法获取第一帧,并将其显示到 ImageView 上。注意,在获取第一帧之前,需要先等待 SurfaceTexture 准备好。
阅读全文