MediaStream

public protocol MediaStream : AnyObject

メディアストリームの機能を定義したプロトコルです。 デフォルトの実装は非公開 (internal) であり、カスタマイズはイベントハンドラでのみ可能です。 ソースコードは公開していますので、実装の詳細はそちらを参照してください。

メディアストリームは映像と音声の送受信を行います。 メディアストリーム 1 つにつき、 1 つの映像と 1 つの音声を送受信可能です。

イベントハンドラ

接続情報

映像と音声の可否

  • 映像の可否。 false をセットすると、サーバーへの映像の送受信を停止します。 true をセットすると送受信を再開します。

    Declaration

    Swift

    var videoEnabled: Bool { get set }
  • 音声の可否。 false をセットすると、サーバーへの音声の送受信を停止します。 true をセットすると送受信を再開します。

    サーバーへの送受信を停止しても、マイクはミュートされませんので注意してください。

    Declaration

    Swift

    var audioEnabled: Bool { get set }
  • 映像トラックを保持している場合は true を返します。

    映像ミュート時に映像トラックが存在するかチェックするために使用されます。 ミュート時に実行する videoEnabled setter は返り値やエラーを返さないため、 呼び出し側へエラーを通知するために必要となります。

    Declaration

    Swift

    var hasVideoTrack: Bool { get }
  • 音声トラックを保持している場合は true を返します。

    音声ミュート時に音声トラックが存在するかチェックするために使用されます。 ミュート時に実行する audioEnabled setter は返り値やエラーを返さないため、 呼び出し側へエラーを通知するために必要となります。

    Declaration

    Swift

    var hasAudioTrack: Bool { get }
  • 受信した音声のボリューム。 0 から 10 (含む) までの値をセットします。 このプロパティはロールがサブスクライバーの場合のみ有効です。

    Declaration

    Swift

    var remoteAudioVolume: Double? { get set }

音声データ取得

  • RTCAudioTrackSink を RTCAudioTrack に関連付けます。 追加済みのシンクを再度追加した場合は何もしません。

    Declaration

    Swift

    func addAudioTrackSink(_ sink: RTCAudioTrackSink)
  • RTCAudioTrackSink の関連付けを解除します。 未追加の RTCAudioTrackSink を指定した場合は何もしません。

    Declaration

    Swift

    func removeAudioTrackSink(_ sink: RTCAudioTrackSink)

映像フレームの送信

  • 映像フィルター

    Declaration

    Swift

    var videoFilter: VideoFilter? { get set }
  • 映像レンダラー。

    Declaration

    Swift

    var videoRenderer: VideoRenderer? { get set }
  • 映像フレームをサーバーに送信します。 送信される映像フレームは映像フィルターを通して加工されます。 映像レンダラーがセットされていれば、加工後の映像フレームが 映像レンダラーによって描画されます。

    Declaration

    Swift

    func send(videoFrame: VideoFrame?)

    Parameters

    videoFrame

    描画する映像フレーム。 nil を指定すると空の映像フレームを送信します。

終了処理