为 android 更改 jitsi-sdk 中的默认摄像头

Change the default camera in jitsi-sdk for android

我正在开发自己的 video-conference Android-App 并使用 jitsi-sdk。 但我想将智能手机的后置摄像头设置为默认设置。用户可以在会议启动后更改它,但我的目标是在会议开始前更改它,无需用户交互。

我已经尝试通过创建 cameraCapturer/videoCapturer 来切换摄像头,但是 JitsiMeetActivity 打开了前置摄像头。我还尝试将 putExtra-method 用于 launch-intent。

所以我的 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[= 进行设置13=]

设置好sdk后,只需要修改react-native-webrtclib文件夹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. 克隆 项目
  3. 运行 npm install 在终端的 root jitsi 文件夹中
  4. jitsi-meet(root)/android 文件夹中你需要 运行 这个命令:./android/scripts/release-sdk.sh /tmp/repo
  5. 从文件夹 jitsi-meet(root)/android
  6. 在 android studio 中构建 android 项目
  7. sdk
  8. 更改代码
  9. 从文件夹 jitsi-meet(root)/android 使用 运行 命令构建 apk:./ gradlew assembleRelease