【问题标题】:How to get a screenshot from SurfaceView?如何从 SurfaceView 获取屏幕截图?
【发布时间】:2016-03-14 15:00:28
【问题描述】:

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

谢谢,

【问题讨论】:

  • 到目前为止你尝试过什么?您对 SurfaceViews 和/或 ExoPlayer 视频渲染器感到满意吗?
  • 就 SurfaceView 而言,这是 stackoverflow.com/questions/27817577 的副本。我不知道 ExoPlayer 是否有一些漂亮的屏幕抓取功能。

标签: android surfaceview exoplayer


【解决方案1】:

如果你使用SurfaceView,你不能得到截图。但是您可以使用 TextureView 播放视频,然后您可以从 TextureView 获取屏幕截图。

这是一个使用TextureView的示例代码,在它的onSurfaceTextureAvailable()回调中你可以得到一个SurfaceTexture,然后你可以使用这个SurfaceTextureExoPlayer

创建一个Surface
player = ...

public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {
   ...
   player.setSurface(new Surface(mSurfaceTexture));
   ...

}

【讨论】:

    【解决方案2】:

    未经测试,取自:How to convert View to Bitmap in android?

    将输入参数更改为更通用。

    protected Bitmap ConvertToBitmap(View layout) {
    
        layout.setDrawingCacheEnabled(true);
    
        layout.buildDrawingCache();
    
        return layout.getDrawingCache();
    
    }
    

    【讨论】:

    • @Zun Weird,刚刚测试过,它工作得很好。你遇到了什么问题?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-01
    • 1970-01-01
    • 2014-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多