ome*_*erk 0 java android file-descriptor fileinputstream surfaceview
我正在看这个课程:https://developer.android.com/reference/android/media/ImageReader.html
我想要的是从ImageReader类中获取一个InputStream,并获取正在渲染到当前表面的图像数据.Current Surface表示当前显示的android屏幕.我在AOSP代码中查看了一个示例,但实际上很难理解.如果有人为我提供了一个很好的ImageReader类示例,那将非常有用.
听起来你正试图用来ImageReader从任意数据中提取数据Surface.它不起作用.
ImageReader是一个缓冲队列"CPU使用者",这是一种奇特的方式,说当你向它发送数据时Surface,在CPU上运行的代码可以直接检查数据.并非所有曲面都可以这样处理 - 在创建曲面时设置使用标志 - 因此您需要创建Surfacewith ImageReader#getSurface()然后将其传递给想要将数据发送到的东西Surface.
正如文档所述,"几个Android媒体API类接受Surface对象作为渲染目标,包括MediaPlayer,MediaCodec和RenderScript Allocations."
主要客户ImageReader是相机,在您链接的CTS测试中展示.它实际上并不适用于MediaCodec解码器,因为输出格式与相机不同(其中一些是专有的).
虚拟显示测试更接近您想要的,因为您可以将虚拟显示的输出定向到Surface.对于具有普通权限的应用,您只能在那里发送自己的应用输出.Android 4.4"screenrecord"命令做了类似的事情.
(如果你想记录你正在绘制的内容SurfaceView,并且你使用OpenGL进行渲染,那么这里和这里展示了一些替代方案.)
| 归档时间: |
|
| 查看次数: |
1766 次 |
| 最近记录: |