如何解决在 ImageReader 中从 MediaPlayer 获取帧
在我的应用程序中,我使用 camera2 API 来获取多个表面的图像,并且运行良好。 出于调试目的,我想将输入源从相机更改为文件视频,为此我使用了 MediaPlayer。 是否可以像相机一样从 mediaPlayer 获取帧?在我的测试中,我只从 setOnImageAvailableListener 获取了一个 Image,之后就不再调用它了。
这是我定义曲面的方式
mHDImageReader = RefCountedAutoCloseable(ImageReader.newInstance(hdImageDimension.width,hdImageDimension.height,getImageFormat(),10))
mImageReader = RefCountedAutoCloseable(ImageReader.newInstance(imageDimension.width,imageDimension.height,4))
//Surface for acquire the image in low resolution
val imageSurface = mImageReader.get()?.surface
//Surface for acquire the image in high resolution
val hdImageSurface = mHDImageReader.get()?.surface
//Surface for show preview on display
val texture = viewFinder.surfaceTexture
我为每个表面使用不同的 mediaPlayer 实例,每个表面都有不同的分辨率。
surfaces.forEach {
mediaPlayers.add(MediaPlayer().apply {
setSurface(it)
setDataSource(selectedVideo)
prepare()
start()
})
}
在预览界面中,我可以毫无问题地观看视频。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。