Android 如何从SurfaceView获取屏幕截图?

Android 如何从SurfaceView获取屏幕截图?,android,surfaceview,exoplayer,Android,Surfaceview,Exoplayer,我正在使用ExoPlayer播放一些视频,我想在我的SurfaceView上显示当前图片,我如何制作 谢谢,如果您使用SurfaceView,则无法获取屏幕截图。但是,您可以使用TextureView来播放视频,然后您可以从TextureView获得屏幕截图 下面是使用TextureView的示例代码,在其onSurfaceTextureAvailable()回调上,您可以获得一个SurfaceTexture,然后可以使用此SurfaceTexture为ExoPlayer创建一个曲面 playe

我正在使用ExoPlayer播放一些视频,我想在我的SurfaceView上显示当前图片,我如何制作


谢谢,

如果您使用SurfaceView,则无法获取屏幕截图。但是,您可以使用TextureView来播放视频,然后您可以从TextureView获得屏幕截图

下面是使用TextureView的示例代码,在其onSurfaceTextureAvailable()回调上,您可以获得一个SurfaceTexture,然后可以使用此SurfaceTexture为ExoPlayer创建一个曲面

player = ...

public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {
   ...
   player.setSurface(new Surface(mSurfaceTexture));
   ...
}未测试,取自:

将输入参数更改为更通用

protected Bitmap ConvertToBitmap(View layout) {

    layout.setDrawingCacheEnabled(true);

    layout.buildDrawingCache();

    return layout.getDrawingCache();

}

到目前为止你试过什么?你对SurfaceView和/或ExoPlayer视频渲染器满意吗?就SurfaceView而言,这是它的复制品。我不知道ExoPlayer是否有一些漂亮的屏幕抓取功能。@Zun-wird,刚刚测试过,效果很好。你有什么问题?