如何解决如何在 jitsi.meet 意图上显示对话框
我正在尝试在我的 android 应用程序中使用 jitsi meet sdk,我需要在视频通话中的参与者像 lingbe 应用程序所做的那样交谈时向他们显示一个对话框 --> pic: https://play-lh.googleusercontent.com/T5Gmc-WnptMuM8cbUn-JCrXg4CrbJwO0-sG45f97Lje4dadCXacLu6ZE08G3aAEoXEJs=w1366-h625-rw .我不知道如何控制和自定义意图。 Jitsi 文档也没有提到它! 这是创建 jitsi 意图的片段。提前谢谢你:)
public class TalkFragment extends Fragment {
FragmentTalkBinding binding;
private final broadcastReceiver broadcastReceiver = new broadcastReceiver() {
@Override
public void onReceive(Context context,Intent intent) {
onbroadcastReceived(intent);
}
};
@Override
public View onCreateView(
LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState
) {
binding = FragmentTalkBinding.inflate(inflater,container,false);
// Initialize default options for Jitsi Meet conferences.
URL serverURL;
try {
// When using JaaS,replace "https://meet.jit.si" with the proper serverURL
serverURL = new URL("https://meet.jit.si");
} catch (MalformedURLException e) {
e.printstacktrace();
throw new RuntimeException("Invalid server URL!");
}
JitsiMeetConferenceOptions defaultOptions
= new JitsiMeetConferenceOptions.Builder()
.setServerURL(serverURL)
// When using JaaS,set the obtained JWT here
//.setToken("MyJWT")
// Different features flags can be set
.setFeatureFlag("toolBox.enabled",true)
// .setFeatureFlag("filmstrip.enabled",false)
.setWelcomePageEnabled(false)
.build();
JitsiMeet.setDefaultConferenceOptions(defaultOptions);
registerForbroadcastMessages();
listener();
return binding.getRoot();
}
@Override
public void onDestroy() {
LocalbroadcastManager.getInstance(requireContext()).unregisterReceiver(broadcastReceiver);
super.onDestroy();
}
public void listener() {
binding.button4.setonClickListener(view -> {
String text = binding.conferenceName.getText().toString();
if (text.length() > 0) {
// Build options object for joining the conference. The SDK will merge the default
// one we set earlier and this one when joining.
JitsiMeetConferenceOptions options
= new JitsiMeetConferenceOptions.Builder()
.setRoom("test")
// Settings for audio and video
//.setAudioMuted(true)
//.setVideoMuted(true)
.build();
// Launch the new activity with the given options. The launch() method takes care
// of creating the required Intent and passing the options.
JitsiMeetActivity.launch(requireContext(),options);
}
});
}
private void registerForbroadcastMessages() {
IntentFilter intentFilter = new IntentFilter();
/* This registers for every possible event sent from JitsiMeetSDK
If only some of the events are needed,the for loop can be replaced
with individual statements:
ex: intentFilter.addAction(broadcastEvent.Type.AUdio_MUTED_CHANGED.getAction());
intentFilter.addAction(broadcastEvent.Type.CONFERENCE_TERMINATED.getAction());
... other events
*/
for (broadcastEvent.Type type : broadcastEvent.Type.values()) {
intentFilter.addAction(type.getAction());
}
LocalbroadcastManager.getInstance(requireContext()).registerReceiver(broadcastReceiver,intentFilter);
}
// Example for handling different JitsiMeetSDK events
private void onbroadcastReceived(Intent intent) {
if (intent != null) {
broadcastEvent event = new broadcastEvent(intent);
switch (event.getType()) {
case CONFERENCE_JOINED:
Timber.i("Conference Joined with url%s",event.getData().get("url"));
break;
case PARTICIPANT_JOINED:
Timber.i("Participant joined%s",event.getData().get("name"));
break;
case CONFERENCE_TERMINATED:
//
}
}
}
// Example for sending actions to JitsiMeetSDK
private void hangUp() {
Intent hangupbroadcastIntent = broadcastIntentHelper.buildHangUpIntent();
LocalbroadcastManager.getInstance(requireContext()).sendbroadcast(hangupbroadcastIntent);
}
@Override
public void onViewCreated(@NonNull @NotNull View view,@Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState) {
super.onViewCreated(view,savedInstanceState);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。