RevueSDK · Swift reference Guides

Instance Method

setMicrophone(enabled:)

啟用/停用麥克風硬體擷取(不 publish、不改 isMuted)

@discardableResult func setMicrophone(enabled: Bool) -> LocalAudioTrack?

Parameters

enabled

true = 開硬體擷取、false = 關硬體擷取

Return Value

麥克風 LocalAudioTrack(後續可透過 publish(audioTrack:to:options:) 發布給指定對象)

Discussion

只開關麥克風硬體(AudioManager 依此切換 AudioSession category),不發布、 不翻任何 isMuted 旗標,也不觸發 mute 事件。

與 mute 的關係

mute 分兩層(軌道層、publication 層),和本方法是不同的 API:

API作用範圍硬體isMuted
setMicrophone(enabled:)不針對接收者處理開/關不改
set(source: .microphone, enabled:) / microphoneTrack.mute()整條軌道,所有接收者收到全 0 的聲音不停改 Track.isMuted
LocalTrackPublication.mute() / unmute()只有那一份 publication 的接收者收到全 0 的聲音不碰改那一份的 isMuted

mute 狀態不另外送訊號:接收端從收到的聲音判斷(全 0 即視為 mute)。

內部走 publication.mute/unmute → mediaTrack.isEnabled = false(WebRTC 內部把 audio 取樣填零)。 AudioUnit / AudioDeviceModule 持續運轉,AudioSession 維持 .playAndRecord。

// 停硬體(例如要預覽錄影檔,AudioSession 可切回 .playback)
localParticipant.setMicrophone(enabled: false)

// 只對 A 靜音:A 收到全 0 的聲音,其他人照常
try await publicationToA.mute()

// 對所有人靜音(mute 軌道,硬體不停,可快速恢復)
try await localParticipant.set(source: .microphone, enabled: false)