模拟Android摄像头

模拟Android摄像头,android,video,camera,android-camera,Android,Video,Camera,Android Camera,我正在使用安卓手机的摄像头作为输入测试成像算法,需要一种方法来一致地测试算法。理想情况下,我希望拍摄一段预先录制的视频,并让手机“假装”该视频是来自摄像头的实时视频 我的理想解决方案是运行算法的应用程序不知道视频是预先录制的。我不想将视频文件直接加载到应用程序中,而是尽可能将其作为传感器数据读入 这种方法可行吗?如果是这样的话,任何指向正确方向的指针都会非常有用,因为谷歌搜索到目前为止都让我失望 谢谢 编辑:澄清一下,我的理解是Camera类使用Camera服务从硬件读取视频。我不想在应用程序端

我正在使用安卓手机的摄像头作为输入测试成像算法,需要一种方法来一致地测试算法。理想情况下,我希望拍摄一段预先录制的视频,并让手机“假装”该视频是来自摄像头的实时视频

我的理想解决方案是运行算法的应用程序不知道视频是预先录制的。我不想将视频文件直接加载到应用程序中,而是尽可能将其作为传感器数据读入

这种方法可行吗?如果是这样的话,任何指向正确方向的指针都会非常有用,因为谷歌搜索到目前为止都让我失望

谢谢


编辑:澄清一下,我的理解是Camera类使用Camera服务从硬件读取视频。我不想在应用程序端做一些事情,而是想创建一个定制的摄像头服务,从视频文件而不是硬件读取。这可行吗?

当您在实时android视频源上进行处理时,您需要构建自己的应用程序,通过android提供的视频源为您提供单个帧

现在,模拟这将有点棘手,因为预览帧的格式通常是NV21格式。如果您使用的是预先录制的视频,我认为没有任何清晰的方法可以逐个读取帧,除非您尝试以完全不同的格式提供位图的方法


这导致我建议您可以使用
getFrameAtTime
方法测试这些位图(尽管我真的不确定您在这里要做什么)。为了使此代码能够在实时相机预览中工作,您需要将NV21帧从
PreviewCallback
界面转换为与
getFrameAtTime
位图相同的格式,或者您可以调整算法以处理NV21格式的帧。NV21是一种非常简洁的格式,分别显示颜色和亮度数据,但使用起来可能很棘手。

感谢您的快速响应。这是一个很好的解决方案,但它不是我想要的。我的理解是Camera类依赖于与硬件通信的Camera服务。我不想编辑camera类,而是想创建一个自定义的camera服务,该服务从视频文件而不是硬件读取。为了清晰起见,我将对上面的内容进行编辑。谢谢按照我的建议创建自定义相机类并不需要编辑相机类–它只是意味着您可以自己处理相机并获取预览信息,另一种方法是创建一个简单的意图,从设备的本机相机应用程序获取图像或视频。你是说你永远都不想在现场预览中工作?你在寻找一种使用传统相机的方法,但提供一个视频作为输入,而不是硬件?如果是这样,这是不可能的。。。你为什么要用相机拍这个?