← Cloudflare Realtime / realtime / realtimekit / core
Správa účastníků relace
Pomocí ovládacích prvků hostitele RealtimeKit můžete spravovat ostatní účastníky v živé relaci. Můžete ztlumit zvuk nebo video, připnout účastníka nebo odebrat účastníky z relace. Tyto akce vyžadují konkrétní oprávnění ovládání hostitele povolená v objektu Preset. Před zobrazením ovládacích prvků UI nebo voláním těchto metod ověřte, že má místní účastník potřebná oprávnění. V tomto průvodci lokální účastník odkazuje na uživatele, který dané akce provádí.
Vyberte vzdáleného účastníka
Chcete-li provádět akce s konkrétním účastníkem, musíte nejprve načíst jeho objekt Participant.
Vzdálení účastníci (ostatní účastníci) jsou dostupní v meeting.participants. Místní účastník je dostupný v meeting.self.
Podrobnosti najdete v Vysvětlení objektu Meeting s podrobnostmi.
const joinedParticipants = meeting.participants.joined.toArray();
const participant = joinedParticipants[0];
if (!participant) {
// No remote participants are currently joined.
}Chcete-li provádět akce s konkrétním účastníkem, musíte nejprve načíst jeho objekt Participant.
Vzdálení účastníci (ostatní účastníci) jsou dostupní v meeting.participants. Místní účastník je dostupný v meeting.self.
Podrobnosti najdete v Vysvětlení objektu Meeting s podrobnostmi.
const joinedParticipants = meeting.participants.joined.toArray();
const participant = joinedParticipants[0];
if (!participant) {
// No remote participants are currently joined.
}Chcete-li provádět akce s konkrétním účastníkem, musíte nejprve načíst jeho objekt Participant.
Vzdálení účastníci (ostatní účastníci) jsou dostupní v meeting.participants. Místní účastník je dostupný v meeting.self.
Podrobnosti najdete v Vysvětlení objektu Meeting s podrobnostmi.
const joinedParticipants = meeting.participants.joined.toArray();
const participant = joinedParticipants[0];
if (!participant) {
// No remote participants are currently joined.
}Chcete-li provádět akce s konkrétním účastníkem, načtěte jeho objekt Participant z participants vlastnost.
Vzdálení účastníci jsou dostupní v meeting.participants.joined. Místní účastník je dostupný v meeting.localUser.
val joinedParticipants = meeting.participants.joined
val participant = joinedParticipants.firstOrNull()
if (participant == null) {
// No remote participants are currently joined.
}Chcete-li provádět akce s konkrétním účastníkem, načtěte jeho objekt Participant z participants vlastnost.
Vzdálení účastníci jsou dostupní v meeting.participants.joined. Místní účastník je dostupný v meeting.localUser.
let joinedParticipants = meeting.participants.joined
guard let participant = joinedParticipants.first else {
// No remote participants are currently joined.
return
}Chcete-li provádět akce s konkrétním účastníkem, načtěte jeho objekt Participant z participants vlastnost.
Vzdálení účastníci jsou dostupní v meeting.participants.joined. Místní účastník je dostupný v meeting.self.
const joinedParticipants = meeting.participants.joined;
const participant = joinedParticipants.toArray()[0];
if (!participant) {
// No remote participants are currently joined.
}Nebo použijte useRealtimeKitSelector hook:
import { useRealtimeKitSelector } from '@cloudflare/realtimekit-react-native';
const joinedParticipants = useRealtimeKitSelector((m) => m.participants.joined);Ztlumit zvuk
Ztlumte zvuk účastníků, když potřebujete potlačit hluk na pozadí, moderovat výuku nebo webinář, nebo zabránit rušení během relace.
Tato akce vyžaduje Mute Audio (disable_participant_audio) povolené oprávnění hostitele v přednastavení lokálního účastníka.
Ztlumit účastníka
Chcete-li ztlumit zvuk konkrétního účastníka:
-
Zkontrolujte, zda má místní účastník oprávnění ztlumit zvuk ostatním účastníkům.
const canMuteAudio = meeting.self.permissions.canDisableParticipantAudio === true; if (!canMuteAudio) { // Disable the control in your UI. } -
Zavolejte
disableAudio()na cílovém účastníkovi.Pokud lokální účastník nemá požadované oprávnění,
disableAudio()vyvoláClientErrors kódem1201.try { await participant.disableAudio(); } catch (err: any) { if (err?.code === 1201) { // The local participant does not have permission to mute other participants’ audio. return; } throw err; } -
Výsledek zpracujte nasloucháním aktualizacím.
Po úspěšném volání se u cílového účastníka jeho
audioEnabledse změní nafalse, a SDK vyvoláaudioUpdateudálost.Možnost A: Naslouchejte na objektu účastníka
participant.on("audioUpdate", ({ audioEnabled, audioTrack }) => { // audioEnabled is false // Update UI for the participant });Možnost B: Naslouchejte na
joinedmapameeting.participants.joined.on( "audioUpdate", (participant, { audioEnabled, audioTrack }) => { if (participant.id === targetParticipantId) { // audioEnabled is false // Update UI for the participant } }, );
-
Zkontrolujte, zda má místní účastník oprávnění ztlumit zvuk ostatním účastníkům.
const canMuteAudio = meeting.self.permissions.canDisableParticipantAudio === true; if (!canMuteAudio) { // Disable the control in your UI. } -
Zavolejte
disableAudio()na cílovém účastníkovi.Pokud lokální účastník nemá požadované oprávnění,
disableAudio()vyvoláClientErrors kódem1201.try { await participant.disableAudio(); } catch (err: any) { if (err?.code === 1201) { // The local participant does not have permission to mute other participants’ audio. return; } throw err; } -
Výsledek zpracujte nasloucháním aktualizacím.
Po úspěšném volání se u cílového účastníka jeho
audioEnabledse změní nafalse, a SDK vyvoláaudioUpdateudálost.Možnost A: Naslouchejte na objektu účastníka
participant.on("audioUpdate", ({ audioEnabled, audioTrack }) => { // audioEnabled is false // Update UI for the participant });Možnost B: Naslouchejte na
joinedmapameeting.participants.joined.on( "audioUpdate", (participant, { audioEnabled, audioTrack }) => { if (participant.id === targetParticipantId) { // audioEnabled is false // Update UI for the participant } }, );
-
Zkontrolujte, zda má místní účastník oprávnění ztlumit zvuk ostatním účastníkům.
const canMuteAudio = meeting.self.permissions.canDisableParticipantAudio === true; if (!canMuteAudio) { // Disable the control in your UI. } -
Zavolejte
disableAudio()na cílovém účastníkovi.Pokud lokální účastník nemá požadované oprávnění,
disableAudio()vyvoláClientErrors kódem1201.try { await participant.disableAudio(); } catch (err: any) { if (err?.code === 1201) { // The local participant does not have permission to mute other participants’ audio. return; } throw err; } -
Výsledek zpracujte nasloucháním aktualizacím.
Po úspěšném volání se u cílového účastníka jeho
audioEnabledse změní nafalse, a SDK vyvoláaudioUpdateudálost.Možnost A: Naslouchejte na objektu účastníka
participant.on("audioUpdate", ({ audioEnabled, audioTrack }) => { // audioEnabled is false // Update UI for the participant });Možnost B: Naslouchejte na
joinedmapameeting.participants.joined.on( "audioUpdate", (participant, { audioEnabled, audioTrack }) => { if (participant.id === targetParticipantId) { // audioEnabled is false // Update UI for the participant } }, );
- Zkontrolujte, zda má místní účastník oprávnění ztlumit zvuk ostatním účastníkům.
val canMuteAudio = meeting.localUser.permissions.host.canMuteAudio
if (!canMuteAudio) {
// Disable the control in your UI.
}- Zavolejte
disableAudio()na cílovém účastníkovi. Pokud lokální účastník nemá potřebné oprávnění,disableAudio()vracíHostError.
val error = participant.disableAudio()
if (error != null) {
// Handle error - permission denied.
}- Výsledek zpracujte nasloucháním aktualizacím. Po úspěšném dokončení volání se u cílového účastníka aktualizuje
audioEnabledse změní nafalse.
meeting.addParticipantsEventListener(object : RtkParticipantsEventListener {
override fun onAudioUpdate(participant: RtkRemoteParticipant, isEnabled: Boolean) {
// audioEnabled is false
// Update UI for the participant
}
})- Zkontrolujte, zda má místní účastník oprávnění ztlumit zvuk ostatním účastníkům.
let canMuteAudio = meeting.localUser.permissions.host.canMuteAudio
if !canMuteAudio {
// Disable the control in your UI.
}- Zavolejte
disableAudio()na cílovém účastníkovi. Pokud lokální účastník nemá potřebné oprávnění,disableAudio()vracíHostError.
if let error = participant.disableAudio() {
// Handle error - permission denied.
}- Výsledek zpracujte nasloucháním aktualizacím. Po úspěšném dokončení volání se u cílového účastníka aktualizuje
audioEnabledse změní nafalse.
extension MeetingViewModel: RtkParticipantsEventListener {
func onAudioUpdate(participant: RtkRemoteParticipant, isEnabled: Bool) {
// audioEnabled is false
// Update UI for the participant
}
}
// Register the listener
meeting.addParticipantsEventListener(participantsEventListener: self)- Zkontrolujte, zda má místní účastník oprávnění ztlumit zvuk ostatním účastníkům.
const canDisableParticipantAudio = meeting.self.permissions.canDisableParticipantAudio;
if (!canDisableParticipantAudio) {
// Disable the control in your UI.
}- Zavolejte
disableAudio()na cílovém účastníkovi.
participant
.disableAudio()
.catch((err) => {
// Handle error - permission denied or other issue.
console.log(err);
});- Výsledek zpracujte nasloucháním aktualizacím. Po úspěšném dokončení volání se u cílového účastníka aktualizuje
audioEnabledse změní nafalse.
meeting.participants.joined.on('audioUpdate', (participant) => {
// participant.audioEnabled is false
// Update UI for the participant
});Ztlumit všechny účastníky
Týká se všech účastníků, včetně lokálního účastníka. Chcete-li ztlumit zvuk u všech účastníků relace:
-
Zkontrolujte, zda má místní účastník oprávnění ztlumit zvuk ostatním účastníkům.
const canMuteAudio = meeting.self.permissions.canDisableParticipantAudio === true; if (!canMuteAudio) { // Disable the control in your UI. } -
Zavolejte
disableAllAudio().Pokud lokální účastník nemá požadované oprávnění,
disableAllAudio()vyvoláClientErrors kódem1201.try { await meeting.participants.disableAllAudio(); } catch (err: any) { if (err?.code === 1201) { // The local participant does not have permission to mute other participants’ audio. return; } throw err; } -
Výsledek zpracujte nasloucháním aktualizacím.
Po úspěšném volání se u každého účastníka jeho
audioEnabledse změní nafalse, a SDK vyvoláaudioUpdateudálost. Místní účastník rovněž obdržíaudioUpdatenameeting.self.Naslouchejte aktualizacím vzdáleného účastníka na
joinedmapa:meeting.participants.joined.on( "audioUpdate", (participant, { audioEnabled, audioTrack }) => { // audioEnabled is false // Update UI for the participant }, );Naslouchejte aktualizaci lokálního účastníka na
meeting.self:meeting.self.on("audioUpdate", ({ audioEnabled, audioTrack }) => { // audioEnabled is false // Update UI for the local participant });
-
Zkontrolujte, zda má místní účastník oprávnění ztlumit zvuk ostatním účastníkům.
const canMuteAudio = meeting.self.permissions.canDisableParticipantAudio === true; if (!canMuteAudio) { // Disable the control in your UI. } -
Zavolejte
disableAllAudio().Pokud lokální účastník nemá požadované oprávnění,
disableAllAudio()vyvoláClientErrors kódem1201.try { await meeting.participants.disableAllAudio(); } catch (err: any) { if (err?.code === 1201) { // The local participant does not have permission to mute other participants’ audio. return; } throw err; } -
Výsledek zpracujte nasloucháním aktualizacím.
Po úspěšném volání se u každého účastníka jeho
audioEnabledse změní nafalse, a SDK vyvoláaudioUpdateudálost. Místní účastník rovněž obdržíaudioUpdatenameeting.self.Naslouchejte aktualizacím vzdáleného účastníka na
joinedmapa:meeting.participants.joined.on( "audioUpdate", (participant, { audioEnabled, audioTrack }) => { // audioEnabled is false // Update UI for the participant }, );Naslouchejte aktualizaci lokálního účastníka na
meeting.self:meeting.self.on("audioUpdate", ({ audioEnabled, audioTrack }) => { // audioEnabled is false // Update UI for the local participant });
-
Zkontrolujte, zda má místní účastník oprávnění ztlumit zvuk ostatním účastníkům.
const canMuteAudio = meeting.self.permissions.canDisableParticipantAudio === true; if (!canMuteAudio) { // Disable the control in your UI. } -
Zavolejte
disableAllAudio().Pokud lokální účastník nemá požadované oprávnění,
disableAllAudio()vyvoláClientErrors kódem1201.try { await meeting.participants.disableAllAudio(); } catch (err: any) { if (err?.code === 1201) { // The local participant does not have permission to mute other participants’ audio. return; } throw err; } -
Výsledek zpracujte nasloucháním aktualizacím.
Po úspěšném volání se u každého účastníka jeho
audioEnabledse změní nafalse, a SDK vyvoláaudioUpdateudálost. Místní účastník rovněž obdržíaudioUpdatenameeting.self.Naslouchejte aktualizacím vzdáleného účastníka na
joinedmapa:meeting.participants.joined.on( "audioUpdate", (participant, { audioEnabled, audioTrack }) => { // audioEnabled is false // Update UI for the participant }, );Naslouchejte aktualizaci lokálního účastníka na
meeting.self:meeting.self.on("audioUpdate", ({ audioEnabled, audioTrack }) => { // audioEnabled is false // Update UI for the local participant });
- Zkontrolujte, zda má místní účastník oprávnění ztlumit zvuk ostatním účastníkům.
val canMuteAudio = meeting.localUser.permissions.host.canMuteAudio
if (!canMuteAudio) {
// Disable the control in your UI.
}- Zavolejte
disableAllAudio()na objektu účastníků. Pokud lokální účastník nemá potřebné oprávnění,disableAllAudio()vracíHostError.
val error = meeting.participants.disableAllAudio()
if (error != null) {
// Handle error - permission denied.
}- Výsledek zpracujte nasloucháním aktualizacím. Po úspěšném dokončení volání se u každého účastníka aktualizuje
audioEnabledse změní nafalse.
meeting.addParticipantsEventListener(object : RtkParticipantsEventListener {
override fun onAudioUpdate(participant: RtkRemoteParticipant, isEnabled: Boolean) {
// audioEnabled is false
// Update UI for the participant
}
})- Zkontrolujte, zda má místní účastník oprávnění ztlumit zvuk ostatním účastníkům.
let canMuteAudio = meeting.localUser.permissions.host.canMuteAudio
if !canMuteAudio {
// Disable the control in your UI.
}- Zavolejte
disableAllAudio()na objektu účastníků. Pokud lokální účastník nemá potřebné oprávnění,disableAllAudio()vracíHostError.
if let error = meeting.participants.disableAllAudio() {
// Handle error - permission denied.
}- Výsledek zpracujte nasloucháním aktualizacím. Po úspěšném dokončení volání se u každého účastníka aktualizuje
audioEnabledse změní nafalse.
extension MeetingViewModel: RtkParticipantsEventListener {
func onAudioUpdate(participant: RtkRemoteParticipant, isEnabled: Bool) {
// audioEnabled is false
// Update UI for the participant
}
}
// Register the listener
meeting.addParticipantsEventListener(participantsEventListener: self)- Zkontrolujte, zda má místní účastník oprávnění ztlumit zvuk ostatním účastníkům.
const canDisableParticipantAudio = meeting.self.permissions.canDisableParticipantAudio;
if (!canDisableParticipantAudio) {
// Disable the control in your UI.
}- Zavolejte
disableAllAudio()na objektu účastníků.
meeting.participants
.disableAllAudio(true)
.catch((err) => {
// Handle error - permission denied or other issue.
console.log(err);
});- Výsledek zpracujte nasloucháním aktualizacím. Po úspěšném dokončení volání se u každého účastníka aktualizuje
audioEnabledse změní nafalse.
meeting.participants.joined.on('audioUpdate', (participant) => {
// participant.audioEnabled is false
// Update UI for the participant
});Vypnutí videa
Vypněte video účastníků, když potřebujete moderovat schůzku, vynutit dodržování soukromí nebo zabránit nežádoucímu videu během výuky nebo webináře.
Tato akce vyžaduje Mute Video (disable_participant_video) povolené oprávnění hostitele v přednastavení lokálního účastníka.
Vypnutí videa účastníka
Vypnutí videa konkrétního účastníka:
-
Zkontrolujte, zda má místní účastník oprávnění vypnout video ostatním účastníkům.
const canDisableVideo = meeting.self.permissions.canDisableParticipantVideo === true; if (!canDisableVideo) { // Disable the control in your UI. } -
Zavolejte
disableVideo()na cílovém účastníkovi.Pokud lokální účastník nemá požadované oprávnění,
disableVideo()vyvoláClientErrors kódem1201.try { await participant.disableVideo(); } catch (err: any) { if (err?.code === 1201) { // The local participant does not have permission to disable other participants’ video. return; } throw err; } -
Výsledek zpracujte nasloucháním aktualizacím.
Po úspěšném volání se u cílového účastníka jeho
videoEnabledse změní nafalse, a SDK vyvolávideoUpdateudálost.Možnost A: Naslouchejte na objektu účastníka
participant.on("videoUpdate", ({ videoEnabled, videoTrack }) => { // videoEnabled is false // Update UI for the participant });Možnost B: Naslouchejte na
joinedmapameeting.participants.joined.on( "videoUpdate", (participant, { videoEnabled, videoTrack }) => { // videoEnabled is false // Update UI for the participant }, );
-
Zkontrolujte, zda má místní účastník oprávnění vypnout video ostatním účastníkům.
const canDisableVideo = meeting.self.permissions.canDisableParticipantVideo === true; if (!canDisableVideo) { // Disable the control in your UI. } -
Zavolejte
disableVideo()na cílovém účastníkovi.Pokud lokální účastník nemá požadované oprávnění,
disableVideo()vyvoláClientErrors kódem1201.try { await participant.disableVideo(); } catch (err: any) { if (err?.code === 1201) { // The local participant does not have permission to disable other participants’ video. return; } throw err; } -
Výsledek zpracujte nasloucháním aktualizacím.
Po úspěšném volání se u cílového účastníka jeho
videoEnabledse změní nafalse, a SDK vyvolávideoUpdateudálost.Možnost A: Naslouchejte na objektu účastníka
participant.on("videoUpdate", ({ videoEnabled, videoTrack }) => { // videoEnabled is false // Update UI for the participant });Možnost B: Naslouchejte na
joinedmapameeting.participants.joined.on( "videoUpdate", (participant, { videoEnabled, videoTrack }) => { // videoEnabled is false // Update UI for the participant }, );
-
Zkontrolujte, zda má místní účastník oprávnění vypnout video ostatním účastníkům.
const canDisableVideo = meeting.self.permissions.canDisableParticipantVideo === true; if (!canDisableVideo) { // Disable the control in your UI. } -
Zavolejte
disableVideo()na cílovém účastníkovi.Pokud lokální účastník nemá požadované oprávnění,
disableVideo()vyvoláClientErrors kódem1201.try { await participant.disableVideo(); } catch (err: any) { if (err?.code === 1201) { // The local participant does not have permission to disable other participants’ video. return; } throw err; } -
Výsledek zpracujte nasloucháním aktualizacím.
Po úspěšném volání se u cílového účastníka jeho
videoEnabledse změní nafalse, a SDK vyvolávideoUpdateudálost.Možnost A: Naslouchejte na objektu účastníka
participant.on("videoUpdate", ({ videoEnabled, videoTrack }) => { // videoEnabled is false // Update UI for the participant });Možnost B: Naslouchejte na
joinedmapameeting.participants.joined.on( "videoUpdate", (participant, { videoEnabled, videoTrack }) => { // videoEnabled is false // Update UI for the participant }, );
- Zkontrolujte, zda má místní účastník oprávnění vypnout video ostatním účastníkům.
val canMuteVideo = meeting.localUser.permissions.host.canMuteVideo
if (!canMuteVideo) {
// Disable the control in your UI.
}- Zavolejte
disableVideo()na cílovém účastníkovi. Pokud lokální účastník nemá potřebné oprávnění,disableVideo()vracíHostError.
val error = participant.disableVideo()
if (error != null) {
// Handle error - permission denied.
}- Výsledek zpracujte nasloucháním aktualizacím. Po úspěšném dokončení volání se u cílového účastníka aktualizuje
videoEnabledse změní nafalse.
meeting.addParticipantsEventListener(object : RtkParticipantsEventListener {
override fun onVideoUpdate(participant: RtkRemoteParticipant, isEnabled: Boolean) {
// videoEnabled is false
// Update UI for the participant
}
})- Zkontrolujte, zda má místní účastník oprávnění vypnout video ostatním účastníkům.
let canMuteVideo = meeting.localUser.permissions.host.canMuteVideo
if !canMuteVideo {
// Disable the control in your UI.
}- Zavolejte
disableVideo()na cílovém účastníkovi. Pokud lokální účastník nemá potřebné oprávnění,disableVideo()vracíHostError.
if let error = participant.disableVideo() {
// Handle error - permission denied.
}- Výsledek zpracujte nasloucháním aktualizacím. Po úspěšném dokončení volání se u cílového účastníka aktualizuje
videoEnabledse změní nafalse.
extension MeetingViewModel: RtkParticipantsEventListener {
func onVideoUpdate(participant: RtkRemoteParticipant, isEnabled: Bool) {
// videoEnabled is false
// Update UI for the participant
}
}
// Register the listener
meeting.addParticipantsEventListener(participantsEventListener: self)- Zkontrolujte, zda má místní účastník oprávnění vypnout video ostatním účastníkům.
const canDisableParticipantVideo = meeting.self.permissions.canDisableParticipantVideo;
if (!canDisableParticipantVideo) {
// Disable the control in your UI.
}- Zavolejte
disableVideo()na cílovém účastníkovi.
participant
.disableVideo()
.catch((err) => {
// Handle error - permission denied or other issue.
console.log(err);
});- Výsledek zpracujte nasloucháním aktualizacím. Po úspěšném dokončení volání se u cílového účastníka aktualizuje
videoEnabledse změní nafalse.
meeting.participants.joined.on('videoUpdate', (participant) => {
// participant.videoEnabled is false
// Update UI for the participant
});Vypnutí videa všech účastníků
Týká se všech účastníků, včetně lokálního účastníka. Chcete-li vypnout video u všech účastníků relace:
-
Zkontrolujte, zda má místní účastník oprávnění vypnout video ostatním účastníkům.
const canDisableVideo = meeting.self.permissions.canDisableParticipantVideo === true; if (!canDisableVideo) { // Disable the control in your UI. } -
Zavolejte
disableAllVideo().Pokud lokální účastník nemá požadované oprávnění,
disableAllVideo()vyvoláClientErrors kódem1201.try { await meeting.participants.disableAllVideo(); } catch (err: any) { if (err?.code === 1201) { // The local participant does not have permission to disable other participants’ video. return; } throw err; } -
Výsledek zpracujte nasloucháním aktualizacím.
Po úspěšném volání se u každého účastníka jeho
videoEnabledse změní nafalse, a SDK vyvolávideoUpdateudálost. Místní účastník rovněž obdržívideoUpdatenameeting.self.Naslouchejte aktualizacím vzdáleného účastníka na
joinedmapa:meeting.participants.joined.on( "videoUpdate", (participant, { videoEnabled, videoTrack }) => { // videoEnabled is false // Update UI for the participant }, );Naslouchejte aktualizaci lokálního účastníka na
meeting.self:meeting.self.on("videoUpdate", ({ videoEnabled, videoTrack }) => { // videoEnabled is false // Update UI for the local participant });
-
Zkontrolujte, zda má místní účastník oprávnění vypnout video ostatním účastníkům.
const canDisableVideo = meeting.self.permissions.canDisableParticipantVideo === true; if (!canDisableVideo) { // Disable the control in your UI. } -
Zavolejte
disableAllVideo().Pokud lokální účastník nemá požadované oprávnění,
disableAllVideo()vyvoláClientErrors kódem1201.try { await meeting.participants.disableAllVideo(); } catch (err: any) { if (err?.code === 1201) { // The local participant does not have permission to disable other participants’ video. return; } throw err; } -
Výsledek zpracujte nasloucháním aktualizacím.
Po úspěšném volání se u každého účastníka jeho
videoEnabledse změní nafalse, a SDK vyvolávideoUpdateudálost. Místní účastník rovněž obdržívideoUpdatenameeting.self.Naslouchejte aktualizacím vzdáleného účastníka na
joinedmapa:meeting.participants.joined.on( "videoUpdate", (participant, { videoEnabled, videoTrack }) => { // videoEnabled is false // Update UI for the participant }, );Naslouchejte aktualizaci lokálního účastníka na
meeting.self:meeting.self.on("videoUpdate", ({ videoEnabled, videoTrack }) => { // videoEnabled is false // Update UI for the local participant });
-
Zkontrolujte, zda má místní účastník oprávnění vypnout video ostatním účastníkům.
const canDisableVideo = meeting.self.permissions.canDisableParticipantVideo === true; if (!canDisableVideo) { // Disable the control in your UI. } -
Zavolejte
disableAllVideo().Pokud lokální účastník nemá požadované oprávnění,
disableAllVideo()vyvoláClientErrors kódem1201.try { await meeting.participants.disableAllVideo(); } catch (err: any) { if (err?.code === 1201) { // The local participant does not have permission to disable other participants’ video. return; } throw err; } -
Výsledek zpracujte nasloucháním aktualizacím.
Po úspěšném volání se u každého účastníka jeho
videoEnabledse změní nafalse, a SDK vyvolávideoUpdateudálost. Místní účastník rovněž obdržívideoUpdatenameeting.self.Naslouchejte aktualizacím vzdáleného účastníka na
joinedmapa:meeting.participants.joined.on( "videoUpdate", (participant, { videoEnabled, videoTrack }) => { // videoEnabled is false // Update UI for the participant }, );Naslouchejte aktualizaci lokálního účastníka na
meeting.self:meeting.self.on("videoUpdate", ({ videoEnabled, videoTrack }) => { // videoEnabled is false // Update UI for the local participant });
- Zkontrolujte, zda má místní účastník oprávnění vypnout video ostatním účastníkům.
val canMuteVideo = meeting.localUser.permissions.host.canMuteVideo
if (!canMuteVideo) {
// Disable the control in your UI.
}- Zavolejte
disableAllVideo()na objektu účastníků. Pokud lokální účastník nemá potřebné oprávnění,disableAllVideo()vracíHostError.
val error = meeting.participants.disableAllVideo()
if (error != null) {
// Handle error - permission denied.
}- Výsledek zpracujte nasloucháním aktualizacím. Po úspěšném dokončení volání se u každého účastníka aktualizuje
videoEnabledse změní nafalse.
meeting.addParticipantsEventListener(object : RtkParticipantsEventListener {
override fun onVideoUpdate(participant: RtkRemoteParticipant, isEnabled: Boolean) {
// videoEnabled is false
// Update UI for the participant
}
})- Zkontrolujte, zda má místní účastník oprávnění vypnout video ostatním účastníkům.
let canMuteVideo = meeting.localUser.permissions.host.canMuteVideo
if !canMuteVideo {
// Disable the control in your UI.
}- Zavolejte
disableAllVideo()na objektu účastníků. Pokud lokální účastník nemá potřebné oprávnění,disableAllVideo()vracíHostError.
if let error = meeting.participants.disableAllVideo() {
// Handle error - permission denied.
}- Výsledek zpracujte nasloucháním aktualizacím. Po úspěšném dokončení volání se u každého účastníka aktualizuje
videoEnabledse změní nafalse.
extension MeetingViewModel: RtkParticipantsEventListener {
func onVideoUpdate(participant: RtkRemoteParticipant, isEnabled: Bool) {
// videoEnabled is false
// Update UI for the participant
}
}
// Register the listener
meeting.addParticipantsEventListener(participantsEventListener: self)- Zkontrolujte, zda má místní účastník oprávnění vypnout video ostatním účastníkům.
const canDisableParticipantVideo = meeting.self.permissions.canDisableParticipantVideo;
if (!canDisableParticipantVideo) {
// Disable the control in your UI.
}- Zavolejte
disableAllVideo()na objektu účastníků.
meeting.participants
.disableAllVideo(true)
.catch((err) => {
// Handle error - permission denied or other issue.
console.log(err);
});- Výsledek zpracujte nasloucháním aktualizacím. Po úspěšném dokončení volání se u každého účastníka aktualizuje
videoEnabledse změní nafalse.
meeting.participants.joined.on('videoUpdate', (participant) => {
// participant.videoEnabled is false
// Update UI for the participant
});Připnutí účastníků
Připnutím účastníka jej zvýrazníte, například jako prezentujícího na webináři nebo učitele ve třídě. Jde o akci platnou pro celou relaci. Všichni účastníci uvidí připnutého účastníka jako hlavní zaměření.
Tato akce vyžaduje Připnout účastníka (pin_participant) povolené oprávnění hostitele v přednastavení lokálního účastníka.
Připnutí účastníka
Chcete-li připnout účastníka v relaci:
-
Zkontrolujte, zda má místní účastník oprávnění připínat účastníky.
const canPinParticipant = meeting.self.permissions.pinParticipant === true; if (!canPinParticipant) { // Disable the control in your UI. } -
Zavolejte
pin()na cílovém účastníkovi.Pokud lokální účastník nemá požadované oprávnění,
pin()vyvoláClientErrors kódem1201.try { await participant.pin(); } catch (err: any) { if (err?.code === 1201) { // The local participant does not have permission to pin participants. return; } throw err; } -
Výsledek zpracujte nasloucháním aktualizacím.
Po úspěšném volání:
- Cílového účastníka
isPinnednabude hodnoty true. - Účastník je přidán do
meeting.participants.pinned. - SDK vysílá
pinnedudálost.
Možnost A: Naslouchejte na objektu účastníka
participant.on("pinned", (updatedParticipant) => { // updatedParticipant.isPinned is true // Update your UI. });Možnost B: Naslouchejte na
joinedmapameeting.participants.joined.on("pinned", (updatedParticipant) => { // updatedParticipant.isPinned is true // Update your UI. });Pokud již dříve existoval připnutý účastník, SDK vyvolá
unpinnedudálost pro daného účastníka. - Cílového účastníka
-
Na straně cílového připnutého účastníka
meeting.self.isPinnedse změní natrueameeting.selfvysílápinned:meeting.self.on("pinned", (selfParticipant) => { // Update the local UI to indicate the participant is pinned. });
-
Zkontrolujte, zda má místní účastník oprávnění připínat účastníky.
const canPinParticipant = meeting.self.permissions.pinParticipant === true; if (!canPinParticipant) { // Disable the control in your UI. } -
Zavolejte
pin()na cílovém účastníkovi.Pokud lokální účastník nemá požadované oprávnění,
pin()vyvoláClientErrors kódem1201.try { await participant.pin(); } catch (err: any) { if (err?.code === 1201) { // The local participant does not have permission to pin participants. return; } throw err; } -
Výsledek zpracujte nasloucháním aktualizacím.
Po úspěšném volání:
- Cílového účastníka
isPinnednabude hodnoty true. - Účastník je přidán do
meeting.participants.pinned. - SDK vysílá
pinnedudálost.
Možnost A: Naslouchejte na objektu účastníka
participant.on("pinned", (updatedParticipant) => { // updatedParticipant.isPinned is true // Update your UI. });Možnost B: Naslouchejte na
joinedmapameeting.participants.joined.on("pinned", (updatedParticipant) => { // updatedParticipant.isPinned is true // Update your UI. });Pokud již dříve existoval připnutý účastník, SDK vyvolá
unpinnedudálost pro daného účastníka. - Cílového účastníka
-
Na straně cílového připnutého účastníka
meeting.self.isPinnedse změní natrueameeting.selfvysílápinned:meeting.self.on("pinned", (selfParticipant) => { // Update the local UI to indicate the participant is pinned. });
-
Zkontrolujte, zda má místní účastník oprávnění připínat účastníky.
const canPinParticipant = meeting.self.permissions.pinParticipant === true; if (!canPinParticipant) { // Disable the control in your UI. } -
Zavolejte
pin()na cílovém účastníkovi.Pokud lokální účastník nemá požadované oprávnění,
pin()vyvoláClientErrors kódem1201.try { await participant.pin(); } catch (err: any) { if (err?.code === 1201) { // The local participant does not have permission to pin participants. return; } throw err; } -
Výsledek zpracujte nasloucháním aktualizacím.
Po úspěšném volání:
- Cílového účastníka
isPinnednabude hodnoty true. - Účastník je přidán do
meeting.participants.pinned. - SDK vysílá
pinnedudálost.
Možnost A: Naslouchejte na objektu účastníka
participant.on("pinned", (updatedParticipant) => { // updatedParticipant.isPinned is true // Update your UI. });Možnost B: Naslouchejte na
joinedmapameeting.participants.joined.on("pinned", (updatedParticipant) => { // updatedParticipant.isPinned is true // Update your UI. });Pokud již dříve existoval připnutý účastník, SDK vyvolá
unpinnedudálost pro daného účastníka. - Cílového účastníka
-
Na straně cílového připnutého účastníka
meeting.self.isPinnedse změní natrueameeting.selfvysílápinned:meeting.self.on("pinned", (selfParticipant) => { // Update the local UI to indicate the participant is pinned. });
- Zkontrolujte, zda má místní účastník oprávnění připínat účastníky.
val canPinParticipant = meeting.localUser.permissions.host.canPinParticipant
if (!canPinParticipant) {
// Disable the control in your UI.
}- Zavolejte
pin()na cílovém účastníkovi. Pokud lokální účastník nemá potřebné oprávnění,pin()vracíHostError.
val error = participant.pin()
if (error != null) {
// Handle error - permission denied.
}- Výsledek zpracujte nasloucháním aktualizacím. Po úspěšném dokončení volání se u cílového účastníka aktualizuje
isPinnedse změní natruea účastník je dostupný vmeeting.participants.pinned.
meeting.addParticipantsEventListener(object : RtkParticipantsEventListener {
override fun onParticipantPinned(participant: RtkRemoteParticipant) {
// participant.isPinned is true
// Update your UI.
}
})- Zkontrolujte, zda má místní účastník oprávnění připínat účastníky.
let canPinParticipant = meeting.localUser.permissions.host.canPinParticipant
if !canPinParticipant {
// Disable the control in your UI.
}- Zavolejte
pin()na cílovém účastníkovi. Pokud lokální účastník nemá potřebné oprávnění,pin()vracíHostError.
if let error = participant.pin() {
// Handle error - permission denied.
}- Výsledek zpracujte nasloucháním aktualizacím. Po úspěšném dokončení volání se u cílového účastníka aktualizuje
isPinnedse změní natruea účastník je dostupný vmeeting.participants.pinned.
extension MeetingViewModel: RtkParticipantsEventListener {
func onParticipantPinned(participant: RtkRemoteParticipant) {
// participant.isPinned is true
// Update your UI.
}
}
// Register the listener
meeting.addParticipantsEventListener(participantsEventListener: self)- Zkontrolujte, zda má místní účastník oprávnění připínat účastníky.
const canPinParticipant = meeting.self.permissions.pinParticipant;
if (!canPinParticipant) {
// Disable the control in your UI.
}- Zavolejte
pin()na cílovém účastníkovi.
participant.pin();- Výsledek zpracujte nasloucháním aktualizacím. Po úspěšném dokončení volání se u cílového účastníka aktualizuje
isPinnedse změní natruea účastník je dostupný vmeeting.participants.pinned.
meeting.participants.pinned.on('participantPinned', (participant) => {
// participant.isPinned is true
// Update your UI.
});Odepněte účastníka
Odepněte účastníka, když potřebujete zrušit zvýraznění a vrátit relaci do standardního zobrazení mřížky nebo zobrazení aktivního mluvčího. Odepnutí připnutého účastníka v relaci:
-
Zkontrolujte, zda má místní účastník oprávnění odepínat účastníky.
const canUnpinParticipant = meeting.self.permissions.pinParticipant === true; if (!canUnpinParticipant) { // Disable the control in your UI. } -
Zavolejte
unpin()na cílovém účastníkovi.Pokud lokální účastník nemá požadované oprávnění,
unpin()vyvoláClientErrors kódem1201.try { await participant.unpin(); } catch (err: any) { if (err?.code === 1201) { // The local participant does not have permission to unpin participants. return; } throw err; } -
Výsledek zpracujte nasloucháním aktualizacím.
Po úspěšném volání:
- Cílového účastníka
isPinnedse změní nafalse. - Účastník je odebrán z
meeting.participants.pinned. - SDK vysílá
unpinnedudálost.
Možnost A: Naslouchejte na objektu účastníka
participant.on("unpinned", (updatedParticipant) => { // updatedParticipant.isPinned is false // Update your UI. });Možnost B: Naslouchejte na
joinedmapameeting.participants.joined.on("unpinned", (updatedParticipant) => { // updatedParticipant.isPinned is false // Update your UI. }); - Cílového účastníka
-
Na straně cílového odepnutého účastníka
meeting.self.isPinnedse změní nafalseameeting.selfvysíláunpinned:meeting.self.on("unpinned", (selfParticipant) => { // Update the local UI to indicate the participant is no longer pinned. });
-
Zkontrolujte, zda má místní účastník oprávnění odepínat účastníky.
const canUnpinParticipant = meeting.self.permissions.pinParticipant === true; if (!canUnpinParticipant) { // Disable the control in your UI. } -
Zavolejte
unpin()na cílovém účastníkovi.Pokud lokální účastník nemá požadované oprávnění,
unpin()vyvoláClientErrors kódem1201.try { await participant.unpin(); } catch (err: any) { if (err?.code === 1201) { // The local participant does not have permission to unpin participants. return; } throw err; } -
Výsledek zpracujte nasloucháním aktualizacím.
Po úspěšném volání:
- Cílového účastníka
isPinnedse změní nafalse. - Účastník je odebrán z
meeting.participants.pinned. - SDK vysílá
unpinnedudálost.
Možnost A: Naslouchejte na objektu účastníka
participant.on("unpinned", (updatedParticipant) => { // updatedParticipant.isPinned is false // Update your UI. });Možnost B: Naslouchejte na
joinedmapameeting.participants.joined.on("unpinned", (updatedParticipant) => { // updatedParticipant.isPinned is false // Update your UI. }); - Cílového účastníka
-
Na straně cílového odepnutého účastníka
meeting.self.isPinnedse změní nafalseameeting.selfvysíláunpinned:meeting.self.on("unpinned", (selfParticipant) => { // Update the local UI to indicate the participant is no longer pinned. });
-
Zkontrolujte, zda má místní účastník oprávnění odepínat účastníky.
const canUnpinParticipant = meeting.self.permissions.pinParticipant === true; if (!canUnpinParticipant) { // Disable the control in your UI. } -
Zavolejte
unpin()na cílovém účastníkovi.Pokud lokální účastník nemá požadované oprávnění,
unpin()vyvoláClientErrors kódem1201.try { await participant.unpin(); } catch (err: any) { if (err?.code === 1201) { // The local participant does not have permission to unpin participants. return; } throw err; } -
Výsledek zpracujte nasloucháním aktualizacím.
Po úspěšném volání:
- Cílového účastníka
isPinnedse změní nafalse. - Účastník je odebrán z
meeting.participants.pinned. - SDK vysílá
unpinnedudálost.
Možnost A: Naslouchejte na objektu účastníka
participant.on("unpinned", (updatedParticipant) => { // updatedParticipant.isPinned is false // Update your UI. });Možnost B: Naslouchejte na
joinedmapameeting.participants.joined.on("unpinned", (updatedParticipant) => { // updatedParticipant.isPinned is false // Update your UI. }); - Cílového účastníka
-
Na straně cílového odepnutého účastníka
meeting.self.isPinnedse změní nafalseameeting.selfvysíláunpinned:meeting.self.on("unpinned", (selfParticipant) => { // Update the local UI to indicate the participant is no longer pinned. });
- Zkontrolujte, zda má místní účastník oprávnění odepínat účastníky.
val canPinParticipant = meeting.localUser.permissions.host.canPinParticipant
if (!canPinParticipant) {
// Disable the control in your UI.
}- Zavolejte
unpin()na cílovém účastníkovi. Pokud lokální účastník nemá potřebné oprávnění,unpin()vracíHostError.
val error = participant.unpin()
if (error != null) {
// Handle error - permission denied.
}- Výsledek zpracujte nasloucháním aktualizacím. Po úspěšném dokončení volání se u cílového účastníka aktualizuje
isPinnedse změní nafalse.
meeting.addParticipantsEventListener(object : RtkParticipantsEventListener {
override fun onParticipantUnpinned(participant: RtkRemoteParticipant) {
// participant.isPinned is false
// Update your UI.
}
})- Zkontrolujte, zda má místní účastník oprávnění odepínat účastníky.
let canPinParticipant = meeting.localUser.permissions.host.canPinParticipant
if !canPinParticipant {
// Disable the control in your UI.
}- Zavolejte
unpin()na cílovém účastníkovi. Pokud lokální účastník nemá potřebné oprávnění,unpin()vracíHostError.
if let error = participant.unpin() {
// Handle error - permission denied.
}- Výsledek zpracujte nasloucháním aktualizacím. Po úspěšném dokončení volání se u cílového účastníka aktualizuje
isPinnedse změní nafalse.
extension MeetingViewModel: RtkParticipantsEventListener {
func onParticipantUnpinned(participant: RtkRemoteParticipant) {
// participant.isPinned is false
// Update your UI.
}
}
// Register the listener
meeting.addParticipantsEventListener(participantsEventListener: self)- Zkontrolujte, zda má místní účastník oprávnění odepínat účastníky.
const canPinParticipant = meeting.self.permissions.pinParticipant;
if (!canPinParticipant) {
// Disable the control in your UI.
}- Zavolejte
unpin()na cílovém účastníkovi.
participant.unpin();- Výsledek zpracujte nasloucháním aktualizacím. Po úspěšném dokončení volání se u cílového účastníka aktualizuje
isPinnedse změní nafalse.
meeting.participants.pinned.on('unpinned', (participant) => {
// participant.isPinned is false
// Update your UI.
});Odebrání účastníků
Odeberte účastníky z relace, pokud potřebujete moderovat rušivé chování nebo vynutit pravidla relace.
Tato akce vyžaduje Vyhodit účastníky (kick_participant) povolené oprávnění hostitele v přednastavení lokálního účastníka.
Odeberte účastníka
Chcete-li odebrat konkrétního účastníka z relace:
-
Zkontrolujte, zda má místní účastník oprávnění odebírat účastníky.
const canKickParticipant = meeting.self.permissions.kickParticipant === true; if (!canKickParticipant) { // Disable the control in your UI. } -
Zavolejte
kick()na cílovém účastníkovi.Pokud lokální účastník nemá požadované oprávnění,
kick()vyvoláClientErrors kódem1201.try { await participant.kick(); } catch (err: any) { if (err?.code === 1201) { // The local participant does not have permission to remove participants. return; } throw err; } -
Výsledek zpracujte nasloucháním aktualizacím.
Po úspěšném volání:
- Vyloučený účastník je odebrán z
meeting.participants.joined. - Účastník je odebrán z ostatních map účastníků, ve kterých se nacházel (například
meeting.participants.pinned). - SDK vysílá
participantLeftnameeting.participants.joined.
meeting.participants.joined.on("participantLeft", (participant) => { // Remove the participant tile from the UI. });Ostatní účastníci relace zaznamenají odchod účastníka prostřednictvím
participantLeft. - Vyloučený účastník je odebrán z
-
Na straně odebraného účastníka se relace odpojí a
meeting.selfvysílároomLeftudálost se stavem nastaveným nakicked.meeting.self.on("roomLeft", ({ state }) => { if (state === "kicked") { // Show a message and navigate the user out of the meeting UI. } });
-
Zkontrolujte, zda má místní účastník oprávnění odebírat účastníky.
const canKickParticipant = meeting.self.permissions.kickParticipant === true; if (!canKickParticipant) { // Disable the control in your UI. } -
Zavolejte
kick()na cílovém účastníkovi.Pokud lokální účastník nemá požadované oprávnění,
kick()vyvoláClientErrors kódem1201.try { await participant.kick(); } catch (err: any) { if (err?.code === 1201) { // The local participant does not have permission to remove participants. return; } throw err; } -
Výsledek zpracujte nasloucháním aktualizacím.
Po úspěšném volání:
- Vyloučený účastník je odebrán z
meeting.participants.joined. - Účastník je odebrán z ostatních map účastníků, ve kterých se nacházel (například
meeting.participants.pinned). - SDK vysílá
participantLeftnameeting.participants.joined.
meeting.participants.joined.on("participantLeft", (participant) => { // Remove the participant tile from the UI. });Ostatní účastníci relace zaznamenají odchod účastníka prostřednictvím
participantLeft. - Vyloučený účastník je odebrán z
-
Na straně odebraného účastníka se relace odpojí a
meeting.selfvysílároomLeftudálost se stavem nastaveným nakicked.meeting.self.on("roomLeft", ({ state }) => { if (state === "kicked") { // Show a message and navigate the user out of the meeting UI. } });
-
Zkontrolujte, zda má místní účastník oprávnění odebírat účastníky.
const canKickParticipant = meeting.self.permissions.kickParticipant === true; if (!canKickParticipant) { // Disable the control in your UI. } -
Zavolejte
kick()na cílovém účastníkovi.Pokud lokální účastník nemá požadované oprávnění,
kick()vyvoláClientErrors kódem1201.try { await participant.kick(); } catch (err: any) { if (err?.code === 1201) { // The local participant does not have permission to remove participants. return; } throw err; } -
Výsledek zpracujte nasloucháním aktualizacím.
Po úspěšném volání:
- Vyloučený účastník je odebrán z
meeting.participants.joined. - Účastník je odebrán z ostatních map účastníků, ve kterých se nacházel (například
meeting.participants.pinned). - SDK vysílá
participantLeftnameeting.participants.joined.
meeting.participants.joined.on("participantLeft", (participant) => { // Remove the participant tile from the UI. });Ostatní účastníci relace zaznamenají odchod účastníka prostřednictvím
participantLeft. - Vyloučený účastník je odebrán z
-
Na straně odebraného účastníka se relace odpojí a
meeting.selfvysílároomLeftudálost se stavem nastaveným nakicked.meeting.self.on("roomLeft", ({ state }) => { if (state === "kicked") { // Show a message and navigate the user out of the meeting UI. } });
- Zkontrolujte, zda má místní účastník oprávnění odebírat účastníky.
val canKickParticipant = meeting.localUser.permissions.host.canKickParticipant
if (!canKickParticipant) {
// Disable the control in your UI.
}- Zavolejte
kick()na cílovém účastníkovi. Pokud lokální účastník nemá potřebné oprávnění,kick()vracíHostError.
val error = participant.kick()
if (error != null) {
// Handle error - permission denied.
}- Výsledek zpracujte nasloucháním aktualizacím. Po úspěšném dokončení volání je vyloučený účastník odebrán z
meeting.participants.joined.
meeting.addParticipantsEventListener(object : RtkParticipantsEventListener {
override fun onParticipantLeave(participant: RtkRemoteParticipant) {
// Remove the participant tile from the UI.
}
})- Zkontrolujte, zda má místní účastník oprávnění odebírat účastníky.
let canKickParticipant = meeting.localUser.permissions.host.canKickParticipant
if !canKickParticipant {
// Disable the control in your UI.
}- Zavolejte
kick()na cílovém účastníkovi. Pokud lokální účastník nemá potřebné oprávnění,kick()vracíHostError.
if let error = participant.kick() {
// Handle error - permission denied.
}- Výsledek zpracujte nasloucháním aktualizacím. Po úspěšném dokončení volání je vyloučený účastník odebrán z
meeting.participants.joined.
extension MeetingViewModel: RtkParticipantsEventListener {
func onParticipantLeave(participant: RtkRemoteParticipant) {
// Remove the participant tile from the UI.
}
}
// Register the listener
meeting.addParticipantsEventListener(participantsEventListener: self)- Zkontrolujte, zda má místní účastník oprávnění odebírat účastníky.
const canKickParticipant = meeting.self.permissions.kickParticipant;
if (!canKickParticipant) {
// Disable the control in your UI.
}- Zavolejte
kick()na cílovém účastníkovi.
participant
.kick()
.catch((err) => {
// Handle error - permission denied or other issue.
console.log(err);
});- Výsledek zpracujte nasloucháním aktualizacím. Po úspěšném dokončení volání je vyloučený účastník odebrán z
meeting.participants.joined.
meeting.participants.joined.on('participantLeft', (participant) => {
// Remove the participant tile from the UI.
});Odebrání všech účastníků
Tím dojde k odebrání všech účastníků z relace, včetně lokálního účastníka. Relace tak skončí pro všechny.
Úplný postup ukončení relace najdete v Ukončení relace.
Chcete-li odebrat všechny účastníky z relace:
-
Zkontrolujte, zda má místní účastník oprávnění odebírat účastníky.
const canKickParticipant = meeting.self.permissions.kickParticipant === true; if (!canKickParticipant) { // Disable the control in your UI. } -
Zavolejte
kickAll().Pokud lokální účastník nemá požadované oprávnění,
kickAll()vyvoláClientErrors kódem1201.try { await meeting.participants.kickAll(); } catch (err: any) { if (err?.code === 1201) { // The local participant does not have permission to remove participants. return; } throw err; } -
Výsledek zpracujte nasloucháním aktualizacím.
Po úspěšném volání všichni účastníci opustí relaci. Na každém klientovi
meeting.selfvysílároomLeftse stavem nastaveným naended.meeting.self.on("roomLeft", ({ state }) => { if (state === "ended") { // Show a message and navigate the user out of the meeting UI. } });
-
Zkontrolujte, zda má místní účastník oprávnění odebírat účastníky.
const canKickParticipant = meeting.self.permissions.kickParticipant === true; if (!canKickParticipant) { // Disable the control in your UI. } -
Zavolejte
kickAll().Pokud lokální účastník nemá požadované oprávnění,
kickAll()vyvoláClientErrors kódem1201.try { await meeting.participants.kickAll(); } catch (err: any) { if (err?.code === 1201) { // The local participant does not have permission to remove participants. return; } throw err; } -
Výsledek zpracujte nasloucháním aktualizacím.
Po úspěšném volání všichni účastníci opustí relaci. Na každém klientovi
meeting.selfvysílároomLeftse stavem nastaveným naended.meeting.self.on("roomLeft", ({ state }) => { if (state === "ended") { // Show a message and navigate the user out of the meeting UI. } });
-
Zkontrolujte, zda má místní účastník oprávnění odebírat účastníky.
const canKickParticipant = meeting.self.permissions.kickParticipant === true; if (!canKickParticipant) { // Disable the control in your UI. } -
Zavolejte
kickAll().Pokud lokální účastník nemá požadované oprávnění,
kickAll()vyvoláClientErrors kódem1201.try { await meeting.participants.kickAll(); } catch (err: any) { if (err?.code === 1201) { // The local participant does not have permission to remove participants. return; } throw err; } -
Výsledek zpracujte nasloucháním aktualizacím.
Po úspěšném volání všichni účastníci opustí relaci. Na každém klientovi
meeting.selfvysílároomLeftse stavem nastaveným naended.meeting.self.on("roomLeft", ({ state }) => { if (state === "ended") { // Show a message and navigate the user out of the meeting UI. } });
- Zkontrolujte, zda má místní účastník oprávnění odebírat účastníky.
val canKickParticipant = meeting.localUser.permissions.host.canKickParticipant
if (!canKickParticipant) {
// Disable the control in your UI.
}- Zavolejte
kickAll()na objektu účastníků. Pokud lokální účastník nemá potřebné oprávnění,kickAll()vracíHostError.
val error = meeting.participants.kickAll()
if (error != null) {
// Handle error - permission denied.
}- Výsledek zpracujte nasloucháním aktualizacím. Po úspěšném dokončení volání všichni účastníci opustí relaci.
meeting.addMeetingRoomEventListener(object : RtkMeetingRoomEventListener {
override fun onMeetingEnded() {
// Show a message and navigate the user out of the meeting UI.
}
})- Zkontrolujte, zda má místní účastník oprávnění odebírat účastníky.
let canKickParticipant = meeting.localUser.permissions.host.canKickParticipant
if !canKickParticipant {
// Disable the control in your UI.
}- Zavolejte
kickAll()na objektu účastníků. Pokud lokální účastník nemá potřebné oprávnění,kickAll()vracíHostError.
if let error = meeting.participants.kickAll() {
// Handle error - permission denied.
}- Výsledek zpracujte nasloucháním aktualizacím. Po úspěšném dokončení volání všichni účastníci opustí relaci.
extension MeetingViewModel: RtkMeetingRoomEventListener {
func onMeetingEnded() {
// Show a message and navigate the user out of the meeting UI.
}
}
// Register the listener
meeting.addMeetingRoomEventListener(meetingRoomEventListener: self)- Zkontrolujte, zda má místní účastník oprávnění odebírat účastníky.
const canKickParticipant = meeting.self.permissions.kickParticipant;
if (!canKickParticipant) {
// Disable the control in your UI.
}- Zavolejte
kickAll()na objektu účastníků.
meeting.participants
.kickAll()
.catch((err) => {
// Handle error - permission denied or other issue.
console.log(err);
});- Výsledek zpracujte nasloucháním aktualizacím. Po úspěšném dokončení volání všichni účastníci opustí relaci.
meeting.self.on('roomLeft', ({ state }) => {
if (state === 'kicked') {
// Show a message and navigate the user out of the meeting UI.
}
});Další kroky
- Jak předvolby řídí oprávnění, zjistíte v Preset.
- Podrobnosti o zpracování chyb najdete v Chybové kódy.