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
override public func layoutSubviews()
-
映像ソース停止時の処理
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 }
- 例えば currentVideoFrameSize が VideoView.frame よりも小さく、
contentMode に
-
画面を
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 }