小编Juk*_*uky的帖子

Android WebRTC:在 Camera2Enumerator.convertSizes 中使用 NullPointerException 切换相机前后问题

基于示例项目,我在我的应用程序中实现了用于视频通话的 webrtc。除了切换相机外,一切正常。

在视频通话中,默认摄像头在前面。如果我第一次切换摄像头前 --> 后 --> 前,它就可以工作。

但是,如果我再次前后切换相机,则会出现以下异常Camera2Enumerator

java.lang.NullPointerException: Attempt to get length of null array
    at org.webrtc.Camera2Enumerator.convertSizes(Camera2Enumerator.java:234)
    at org.webrtc.Camera2Enumerator.getSupportedSizes(Camera2Enumerator.java:147)
    at org.webrtc.Camera2Session.findCaptureFormat(Camera2Session.java:325)
    at org.webrtc.Camera2Session.start(Camera2Session.java:313)
    at org.webrtc.Camera2Session.<init>(Camera2Session.java:296)
    at org.webrtc.Camera2Session.create(Camera2Session.java:274)
    at org.webrtc.Camera2Capturer.createCameraSession(Camera2Capturer.java:35)
    at org.webrtc.CameraCapturer$5.run(CameraCapturer.java:270)
    at android.os.Handler.handleCallback(Handler.java:883)
    at android.os.Handler.dispatchMessage(Handler.java:100)
    at android.os.Looper.loop(Looper.java:237)
    at android.os.HandlerThread.run(HandlerThread.java:67)
Run Code Online (Sandbox Code Playgroud)

为了切换相机,我使用示例项目中的代码如下:

private void switchCameraInternal() {
    if (videoCapturer instanceof CameraVideoCapturer) {
        if (!isVideoCallEnabled() || isError) {
            Log.e(TAG,
                    "Failed to switch camera. Video: " + isVideoCallEnabled() + ". Error : " + isError);
            return; // No video is sent or …
Run Code Online (Sandbox Code Playgroud)

android webrtc

8
推荐指数
1
解决办法
510
查看次数

标签 统计

android ×1

webrtc ×1