是否可以使用 MediaProjection API 并在录制过程中处理每个录制的帧?
Posted
技术标签:
【中文标题】是否可以使用 MediaProjection API 并在录制过程中处理每个录制的帧?【英文标题】:Is it possible to use MediaProjection API and process every recorded frame during recording? 【发布时间】:2021-01-17 03:11:12 【问题描述】:我想构建一个应用程序来模拟您从飞利浦电视中了解到的流光溢彩。为此,我有一个 Arduino 来控制我的 LED 并监听串行端口上的命令以设置 LED 的颜色。
理论上,我希望我的应用在后台录制我的 android TV 屏幕。这可以通过 MediaProjection API 来实现。但据我所知,您只能在停止录制后获取视频文件。但我想处理每一帧或每 n 毫秒截屏一次。
我的问题:您能否在录制时访问单个帧,或者是否可以使用 MediaProjection API 在后台每隔 n 秒截取一次屏幕截图。或者还有其他方法可以实现吗?
【问题讨论】:
【参考方案1】:经过进一步调查,我找到了解决方案。您可以在MediaProjection
上使用ImageReader
并实现其OnImageAvailable
回调,每次垂直同步完成时都会调用此回调。然后你就可以从阅读器中提取位图了。
【讨论】:
以上是关于是否可以使用 MediaProjection API 并在录制过程中处理每个录制的帧?的主要内容,如果未能解决你的问题,请参考以下文章
MediaProjection与MediaRecorder实现录屏
API 级别 29 - MediaProjection 始终请求许可
android Q中无法识别MediaProjection服务类型