gpt4 book ai didi

Android WebRTC : switch camera back & front issue with NullPointerException in Camera2Enumerator. convertSizes

转载 作者:行者123 更新时间:2023-12-04 23:38:10 25 4
gpt4 key购买 nike

基于示例项目,我在我的应用程序中实现了用于视频通话的 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)

要切换相机,我使用示例项目中的代码如下:
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 only one camera is available or error happened.
}
Log.d(TAG, "Switch camera");
CameraVideoCapturer cameraVideoCapturer = (CameraVideoCapturer) videoCapturer;
cameraVideoCapturer.switchCamera(null);
} else {
Log.d(TAG, "Will not switch camera, video caputurer is not a camera");
}
}

另外,我注意到在“CameraVideoCapture”界面中,还有一个 switchCamera对于特定的相机 ID。但是,我不能调用这个函数,这个函数标记为未定义。
void switchCamera(CameraSwitchHandler switchEventsHandler, String cameraName);
所以我看 CameraCapturer类谁实现了上述接口(interface),但它没有实现这个。所以我认为只有1个选择使用默认 switchCamera如示例项目中的上述代码。

这段代码有什么问题吗?非常感谢您的帮助。

最佳答案

这是 Camera2 api 的问题。即使设备支持 Camera2,我也使用 camera1 api 解决了这个问题

关于Android WebRTC : switch camera back & front issue with NullPointerException in Camera2Enumerator. convertSizes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62216198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com