如何在Android中进行WebRTC调用拍照

时间:2017-08-04 18:34:04

标签: android webrtc android-camera2

使用案例

在用户A和用户B之间进行WebRTC通话期间,用户B需要能够使用当前连接到PeerConnection的相机拍摄用户A的高分辨率照片。

尝试解决方案

  • 我尝试使用自定义VideoRenderer.Callbacks添加新的视频渲染器。

    public void renderFrame(VideoRenderer.I420Frame i420Frame) {
        //Convert i420Frame to YuvImage
    }
    

我遇到的两个问题是,当我的renderFrame函数被调用时,相机输入会中断。另一个问题是i420Frame.yuvStrides为null。

  • 我曾尝试使用Camera2 API拍摄照片。这意味着我处置了本地媒体流。使用CameraManager创建一个新的cameraDevice。创建会话/请求。尝试拍照。然后重新创建本地媒体流。

我不喜欢这个解决方案,但我想要一个概念验证。但是,由于WebRTC库内部正在进行线程处理,我无法知道本地MediaStream何时最终断开相机连接。我对Camera2没有太多经验,所以我可能做错了。

TL; DR

我正在寻找从目前正在WebRTC MediaStream中使用的相机访问高分辨率静止图像的正确方法。

0 个答案:

没有答案