使用案例
在用户A和用户B之间进行WebRTC通话期间,用户B需要能够使用当前连接到PeerConnection的相机拍摄用户A的高分辨率照片。
尝试解决方案
我尝试使用自定义VideoRenderer.Callbacks添加新的视频渲染器。
public void renderFrame(VideoRenderer.I420Frame i420Frame) {
//Convert i420Frame to YuvImage
}
我遇到的两个问题是,当我的renderFrame函数被调用时,相机输入会中断。另一个问题是i420Frame.yuvStrides为null。
我不喜欢这个解决方案,但我想要一个概念验证。但是,由于WebRTC库内部正在进行线程处理,我无法知道本地MediaStream何时最终断开相机连接。我对Camera2没有太多经验,所以我可能做错了。
TL; DR
我正在寻找从目前正在WebRTC MediaStream中使用的相机访问高分辨率静止图像的正确方法。