VideoRenderer

public protocol VideoRenderer : AnyObject

映像の描画に必要な機能を定義したプロトコルです。

SDK が呼ぶ callback の配送 executor はすべて main queue です。VideoRenderer の実装は main queue 上で呼ばれる前提で書けますが、利用者が任意のスレッドから直接呼ぶ契約は 変わりません。この protocol は @MainActor 隔離を持たないため、main queue 配送は 実行時の取り決めであり、型では保証されません。

  • 映像のサイズが変更されたときに呼ばれます。

    この callback は main queue 上で呼ばれます。

    Declaration

    Swift

    func onChange(size: CGSize)

    Parameters

    size

    変更後のサイズ

  • 映像フレームを描画します。

    この callback は main queue 上で呼ばれます。

    Declaration

    Swift

    func render(videoFrame: VideoFrame?)

    Parameters

    videoFrame

    描画する映像フレーム

  • 接続解除時に呼ばれます。

    この callback は main queue 上で呼ばれます。

    Declaration

    Swift

    func onDisconnect(from: MediaChannel?)

    Parameters

    from

    接続解除するメディアチャンネル

  • ストリームへの追加時に呼ばれます。

    この callback は main queue 上で呼ばれます。

    Declaration

    Swift

    func onAdded(from: MediaStream)

    Parameters

    from

    追加されるストリーム

  • ストリームからの除去時に呼ばれます。

    この callback は main queue 上で呼ばれます。MediaStream.videoRenderer の setter で 交換または nil を代入したときに、以前の renderer へ 1 回だけ呼ばれます。

    Declaration

    Swift

    func onRemoved(from: MediaStream)

    Parameters

    from

    除去されるストリーム

  • 映像の可否の設定の変更時に呼ばれます。

    この callback は main queue 上で呼ばれます。MediaStreamHandlers.onSwitchVideo の 実行 executor とは異なり、相対順序は保証されません。

    Declaration

    Swift

    func onSwitch(video: Bool)

    Parameters

    video

    映像の可否

  • 音声の可否の設定の変更時に呼ばれます。

    この callback は main queue 上で呼ばれます。MediaStreamHandlers.onSwitchAudio の 実行 executor とは異なり、相対順序は保証されません。

    Declaration

    Swift

    func onSwitch(audio: Bool)

    Parameters

    audio

    音声の可否