我正在开发自己的视频会议 Android 应用程序并使用 jitsi-sdk。 但我想将智能手机的后置摄像头设置为默认值。用户可以在会议启动后更改它,但我的目标是在会议开始之前更改它,而无需用户交互。
我已经尝试通过创建cameraCapturer/videoCapturer来切换摄像头,但是JitsiMeetActivity打开了前置摄像头。我还尝试使用 putExtra-method 来实现启动意图。
因此,我的 Activity 从 JitsiMeetActivity 扩展而来,在设置 JitsiMeetConferenceOptions 后,会议启动如下:
Intent intent = new Intent(context, JitsiMeetActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction("org.jitsi.meet.CONFERENCE");
intent.putExtra("JitsiMeetConferenceOptions", options);
startActivity(context, JitsiMeetActivity);
此后,我无法以编程方式更改任何内容。
有什么办法可以在JitsiMeetActivity打开之前获取设置吗?
我希望有人能帮助我。
抱歉回答晚了,但我找到了解决方案...您需要自定义 jitsi android sdk,为此您需要 mac,并使用 docs
设置它设置好sdk后,只需更改react-native-webrtc lib文件夹下CameraCaptureController.java中的一行代码即可
从此:
@Override
protected VideoCapturer createVideoCapturer() {
String deviceId = ReactBridgeUtil.getMapStrValue(this.constraints, "deviceId");
String facingMode = ReactBridgeUtil.getMapStrValue(this.constraints, "facingMode");
return createVideoCapturer(deviceId, facingMode);
}
对此:
@Override
protected VideoCapturer createVideoCapturer() {
String deviceId = ReactBridgeUtil.getMapStrValue(this.constraints, "deviceId");
String facingMode = ReactBridgeUtil.getMapStrValue(this.constraints, "facingMode");
return createVideoCapturer(deviceId, "environment");
}
并在终端中执行:./gradlew assembleRelease
构建自己的jitsi-meet-sdk的说明:
facingMode
功能更改
user
配置(
environment
用于前置摄像头或
setConfigOverride
用于后置摄像头)
JitsiMeetConferenceOptions options
= new JitsiMeetConferenceOptions.Builder()
.setRoom(roomName)
.setServerURL(serverUrl)
.setToken(token)
.setConfigOverride("cameraFacingMode", "environment")
.build();
JitsiMeetActivity.launch(this, options);