首页 > 解决方案 > 更改 jitsi-sdk for android 中的默认摄像头

问题描述

我正在开发自己的视频会议 Android-App 并使用 jitsi-sdk。但我想将智能手机的后置摄像头设置为默认值。用户可以在会议启动后更改它,但我的目标是在会议开始之前在没有用户交互的情况下更改它。

我已经尝试通过创建cameraCapturer/videoCapturer来切换摄像头,但是JitsiMeetActivity会打开前置摄像头。我也尝试使用 putExtra 方法来启动意图。

所以我的活动从 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 之前获取设置?

我希望有一个人可以帮助我。

标签: androidreact-nativejitsijitsi-meet

解决方案


抱歉回答晚了,但我找到了解决方案...您需要自定义 jitsi android sdk,为此您需要 mac,并使用文档进行设置

设置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 的说明:

  1. 从 github克隆项目
  2. 在您的终端中的 root jitsi 文件夹中运行npm install
  3. jitsi-meet(root)/android文件夹中,您需要运行以下命令:./android/scripts/release-sdk.sh /tmp/repo
  4. 从文件夹jitsi-meet(root)/android在 android studio 中构建 android 项目
  5. 从sdk更改代码
  6. 通过运行以下命令从文件夹jitsi-meet(root)/android构建 apk : ./gradlew assembleRelease

推荐阅读