RevueSDK · Swift reference Guides

Instance Method

publish(videoTrack:to:options:)

發佈視訊 Track 到指定參與者

func publish(videoTrack: LocalVideoTrack, to participant: RemoteParticipant, options: VideoPublishOptions? = nil) async throws -> LocalTrackPublication

Discussion

建立 VideoConverter 發送 pipeline:CameraCapturer output → fill(pixelBuffer) → Timer 取樣 → NV12→I420 → RevueKitBridge.sendVideoFrame。

每位好友最多一路視訊:已對這位好友發布過視訊(不論哪條軌道、哪種 codec)時, 再次 publish 會 throw RoomError.videoPublicationAlreadyExists,舊的發布保留不變。 要換軌道,先 unpublish(publication:) 舊的再 publish 新的;要換 codec,對既有 publication 呼叫 LocalTrackPublication.setCodec(_:),不必重新發布。

發布不碰鏡頭硬體,和開鏡頭也沒有先後限制:軌道 mute 著或鏡頭關著時,對方收到佔位畫面。

同一個 Track 可以對不同人用不同 codec:

let track = localParticipant.cameraTrack
// 對 A 用 VP8(低延遲 preset)
try await localParticipant.publish(videoTrack: track, to: participantA,
    options: VideoPublishOptions(codec: .vp8LowLatency))
// 對 B 用 H.264
try await localParticipant.publish(videoTrack: track, to: participantB,
    options: VideoPublishOptions(codec: .h264Default))