Che*_*hen 4 android screenshot surfaceview
我现在遇到的困难是拍摄SurfaceView的屏幕截图。谁能帮忙吗?
我的团队正在做一个Android项目,我们在其中使用MediaCodec解码视频提要并将提要呈现到Surface上。活动实施
SurfaceHolder.Callback
Run Code Online (Sandbox Code Playgroud)
然后,我们创建了一个SurfaceView并添加了回调:
mySurfaveView.getHolder().addCallback(this);
Run Code Online (Sandbox Code Playgroud)
然后,我们开始解码视频提要(我们有一种方法可以解码)
surfaceChanged(SurfaceHolder holder, int format, int width, int height)
Run Code Online (Sandbox Code Playgroud)
视频工作正常,现在我想截取渲染到SurfaceView上的屏幕截图。我尝试了几种方法来做到这一点,但没有成功。以下是我尝试过的方法:
到目前为止,我正试图创建一个自定义的SurfaceView并在那里重写onDraw方法。但是,我从未创建过自定义SurfaceView。我的方向正确吗?
请帮忙。谢谢!
如另一个问题所述,您无法捕获SurfaceView 。
SurfaceViews很少要重写onDraw()。通常,SurfaceView的View部分是一个透明孔。
对于MediaCodec输出的特定情况,您有两种选择。您可以将输出定向到SurfaceTexture,然后使用OpenGL ES两次渲染视频帧。一次进入SurfaceView进行显示,一次进入屏幕外的缓冲区,您可以从该缓冲区捕获像素。
另一种方法是将SurfaceView替换为TextureView,然后使用该getBitmap()调用来捕获视频帧。
可以在Grafika中找到各种示例。
| 归档时间: |
|
| 查看次数: |
6514 次 |
| 最近记录: |