- RevueSDK
- LocalParticipant
- publish(audioTrack:to:options:)
Instance Method
publish(audioTrack:to:options:)
發佈音訊 Track 到指定參與者
func publish(audioTrack: LocalAudioTrack, to participant: RemoteParticipant, options: AudioPublishOptions? = nil) async throws -> LocalTrackPublicationDiscussion
建立 AudioConverter 發送 pipeline:MicrophoneCapturer output → fill(pcmBuffer) → Float32→Int16 + MTU 分包 → RevueKitBridge.sendAudioFrame。
每位好友最多一路音訊:核心層每個 friendId 只有一路 Opus 音訊(AAC 暫不使用)。 已對這位好友發布過音訊時,再次 publish 會 throw RoomError.audioPublicationAlreadyExists, 舊的發布保留不變;要換軌道,先 unpublish(publication:) 舊的再 publish 新的。
let mixForA = AudioCompositor()
mixForA.addTrack(localParticipant.microphoneTrack)
if let audioOfB = participantB.firstAudioTrack { mixForA.addTrack(audioOfB) }
try await localParticipant.publish(audioTrack: mixForA.outputTrack, to: participantA)