Manage in-meeting audio settings

After the SDK is initialized and you are connected to the Zoom client, use ZoomToolSuiteAPI.Setting.Audio for device selection and audio processing, and ZoomToolSuiteAPI.Meeting.Audio for in-meeting mute controls. Participant audio state comes from ZoomToolSuiteUser via ZoomToolSuiteAPI.Meeting.Participants.

APIs are static on ZoomToolSuiteAPI.Setting.Audio and ZoomToolSuiteAPI.Meeting.Audio.

Participant audio state

ZoomToolSuiteUser exposes ZoomToolSuiteAudioType and bAudioMuted.

let me = ZoomToolSuiteAPI.Meeting.Participants.getMySelf()
let _ = me.audioType
let _ = me.bAudioMuted
if let other = ZoomToolSuiteAPI.Meeting.Participants.getUserByUserID(12345, meetingType: .default) {
    let _ = other.audioType
}

Manage the audio speaker

List devices with getAudioDeviceList(false), and inspect devices with ZoomToolSuiteDeviceInfo. Switch devices with selectAudioDevice(_:deviceId:deviceName:completion:), with the first parameter for the speaker set as false.

let speakers = ZoomToolSuiteAPI.Setting.Audio.getAudioDeviceList(bMic: false)
for device in speakers where device.isSelected {
    // current output
}
ZoomToolSuiteAPI.Setting.Audio.selectAudioDevice(
    bMic: false,
    deviceId: deviceId,
    deviceName: deviceName
) { result in
}

Manage the audio microphone

Managing audio microphone follows a similar pattern as managing the audio speaker. List devices with getAudioDeviceList(true), and inspect devices with ZoomToolSuiteDeviceInfo. Switch with selectAudioDevice(_:deviceId:deviceName:completion:), with the first parameter for the microphone set as true.

let mics = ZoomToolSuiteAPI.Setting.Audio.getAudioDeviceList(bMic: true)
ZoomToolSuiteAPI.Setting.Audio.selectAudioDevice(
    bMic: true,
    deviceId: deviceId,
    deviceName: deviceName
) { result in
}

Mute or unmute your microphone

To mute the current user's microphone, use muteMyAudio. To unmute on the current user's microphone, use unmuteMyAudio. To toggle the current user's microphone mute or unmute status, use toggleMyAudioStatus.

ZoomToolSuiteAPI.Meeting.Audio.muteMyAudio { result in
}
ZoomToolSuiteAPI.Meeting.Audio.unmuteMyAudio { result in
}
ZoomToolSuiteAPI.Meeting.Audio.toggleMyAudioStatus { result in
}

Hosts can control whether participants may unmute themselves. To check if participants are allowed to unmute themselves, hosts can use isParticipantsUnmuteSelfAllowed. To let all participants mute or unmute themselves, use allowParticipantsToUnmuteSelf.

ZoomToolSuiteAPI.Meeting.Participants.isParticipantsUnmuteSelfAllowed { result in
    // result.value, etc.
}
ZoomToolSuiteAPI.Meeting.Participants.allowParticipantsToUnmuteSelf(
    true,
    completion: { _ in },
    meetingType: .default
)

Mute or unmute everyone

To mute all current participants, use muteAllAudio. To unmute all current participants, use unMuteAllAudio.

NOTE Only hosts or co-hosts may mute or unmute all participants.

ZoomToolSuiteAPI.Meeting.Audio.muteAllAudio { result in
}
ZoomToolSuiteAPI.Meeting.Audio.unMuteAllAudio { result in
}

Mute participants on entry

To mute participants as they enter the meeting, use enableMuteOnEntryFeature. To see if this feature is currently enabled, use isMuteOnEntryFeatureOn.

ZoomToolSuiteAPI.Meeting.Audio.enableMuteOnEntryFeature(
    enable: true,
    allowUnmuteBySelf: true,
    completion: { _ in },
    meetingType: .default
)
ZoomToolSuiteAPI.Meeting.Audio.isMuteOnEntryFeatureOn { _ in
}