VideoView

public class VideoView : UIView

VideoRenderer プロトコルのデフォルト実装となる UIView です。

MediaStream.videoRenderer にセットすることで、その MediaStream に流れている映像をそのまま画面に表示することができます。

contentModeの設定

VideoView は contentMode の設定に対応しており、 contentMode プロパティに任意の値を設定することで映像のレンダリングのされ方を変更することができます。

  • コード上からプログラム的に VideoView を生成した場合、デフォルト値は scaleAspectFit になります。
  • Storyboard や Interface Builder 経由で VideoView を生成した場合、 Storyboard や Interface Builder 上で設定した Content Mode の値が使用されます。

インスタンスの生成

  • 初期化します。

    Declaration

    Swift

    override public init(frame: CGRect)

    Parameters

    frame

    ビューのサイズ

  • コーダーを使用して初期化します。

    Declaration

    Swift

    public required init?(coder: NSCoder)

    Parameters

    coder

    コーダー

レイアウト

映像の描画

  • 映像ソース停止時の処理

    Declaration

    Swift

    public var connectionMode: VideoViewConnectionMode
  • 描画処理の実行中であれば true

    Declaration

    Swift

    public private(set) var isRendering: Bool { get }
  • 描画停止時に clear() を実行すると表示されるビュー

    Declaration

    Swift

    public var backgroundView: UIView? { get set }
  • 現在 VideoView が表示している映像の元々のフレームサイズを返します。

    まだ VideoView が映像のフレームを一度も表示していない場合は nil を返します。

    VideoView はこの映像のフレームサイズを元にして、自身の contentMode に従ってフレームを変形させ、映像を画面に表示します。

    • 例えば currentVideoFrameSize が VideoView.frame よりも小さく、 contentMode に scaleAspectFit が指定されている場合は、 contentMode の指定に従って元映像は引き伸ばされて、拡大表示される事になります。

    このプロパティを使用することで、例えば元映像が横長の場合は横長なUIにし、 縦長の場合は縦長なUIにする、といった調整を行うことができます。

    注意点として、このプロパティは直前の映像のフレームサイズを返すため、 既に映像は表示されていない場合でも、最後に表示していた映像フレームをサイズを返します。

    Declaration

    Swift

    public var currentVideoFrameSize: CGSize? { get }
  • 画面を backgroundView のビューに切り替えます。 backgroundView が指定されていなければ画面を黒で塗り潰します。 このメソッドは描画停止時のみ有効です。

    Declaration

    Swift

    public func clear()
  • 映像フレームの描画を開始します。

    Declaration

    Swift

    public func start()
  • 映像フレームの描画を停止します。 描画の停止中は render(videoFrame:) が実行されません。

    Declaration

    Swift

    public func stop()

デバッグモード

  • デバッグモードを有効にします。 有効にすると、映像の上部に解像度とフレームレートを表示します。

    Declaration

    Swift

    public var debugMode: Bool { get set }