为 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:
- 从 github
克隆 项目
- 运行 npm install 在终端的 root jitsi 文件夹中
- 在 jitsi-meet(root)/android 文件夹中你需要 运行 这个命令:./android/scripts/release-sdk.sh /tmp/repo
- 从文件夹 jitsi-meet(root)/android
在 android studio 中构建 android 项目
- 从 sdk
更改代码
- 从文件夹 jitsi-meet(root)/android 使用 运行 命令构建 apk:./ gradlew assembleRelease
我正在开发自己的 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:
- 从 github 克隆 项目
- 运行 npm install 在终端的 root jitsi 文件夹中
- 在 jitsi-meet(root)/android 文件夹中你需要 运行 这个命令:./android/scripts/release-sdk.sh /tmp/repo
- 从文件夹 jitsi-meet(root)/android 在 android studio 中构建 android 项目
- 从 sdk 更改代码
- 从文件夹 jitsi-meet(root)/android 使用 运行 命令构建 apk:./ gradlew assembleRelease