我一直在使用相机插件,我知道有可能使用start/stopVideoRecording
函数通过CameraController
捕获视频,函数将采用文件的路径作为输入。
我希望能够在录制时将此视频流式传输到服务器,是否可以以某种方式使用相机插件的当前功能?
看起来这是可能的,因为它是在 Flutter Live 上通过其中一个开发演示完成的。在此处查看YouTube视频。24:17。 CameraController 上有一个名为 getByteStream 的方法。方法的要点如下所示。
void cameraBytesToDetector({@required CameraController camera}){
camera.startByteStream( (image) {
// do something with the image stream here
});
}
但是我在任何地方都找不到参考,因为我也在寻找一种读取视频流的方法。
你可以从 Dart 调用 Java/Kotlin 或 Objective-C/Swift 库。
我可以建议安卓库,
https://github.com/begeekmyfriend/yasea
https://github.com/ant-media/LiveVideoBroadcaster
您唯一需要做的就是为此类库开发一个 dart 接口。
Steve 提到的startByteStream
功能实际上并没有添加到插件中,因为它最初只是被称为startByteStream
,但实际上只提供图像。结果,在开发过程中,这个函数被重命名为startImageStream
,如这个提交所示。所以有一个startImageStream
,一旦你通过web-rtc获得图像帧,就可以将图像帧发送到后端。然后,您可以尝试单独录制音频并将其发送。
但是,startImageStream
不包括任何音频,并且可能无法执行。添加字节流功能(包括音频(存在一个未解决的问题。GitHub 问题
截至目前,代码中不存在startByteStream
。
我不确定这是否回答了您的问题,但是有一个名为agora_rtc_engine的软件包可以做到这一点。