微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 jitsi.meet 意图上显示对话框

如何解决如何在 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 举报,一经查实,本站将立刻删除。