CameraVideoCapturer

public final class CameraVideoCapturer

解像度やフレームレートなどの設定は start 実行時に指定します。 カメラはパブリッシャーまたはグループの接続時に自動的に起動 (起動済みなら再起動) されます。

カメラの設定を変更したい場合は、 change を実行します。

インスタンスの取得

  • 利用可能なデバイスのリスト RTCCameraVideoCapturer.captureDevices を返します。

    Declaration

    Swift

    public static var devices: [AVCaptureDevice] { get }
  • 前面のカメラに対応するデバイス

    Declaration

    Swift

    public private(set) static var front: CameraVideoCapturer? { get }
  • 背面のカメラに対応するデバイス

    Declaration

    Swift

    public private(set) static var back: CameraVideoCapturer? { get }
  • 起動中のデバイス

    Declaration

    Swift

    public private(set) static var current: CameraVideoCapturer? { get }
  • RTCCameraVideoCapturer が保持している AVCaptureSession

    Declaration

    Swift

    public var captureSession: AVCaptureSession { get }
  • 指定したカメラ位置にマッチした最初のデバイスを返します。 captureDevice(for: .back) とすれば背面カメラを取得できます。

    Declaration

    Swift

    public static func device(for position: AVCaptureDevice.Position) -> AVCaptureDevice?
  • 指定された設定に最も近い AVCaptureDevice.Format? を返します。

    Declaration

    Swift

    public static func format(width: Int32, height: Int32, for device: AVCaptureDevice, frameRate: Int? = nil) -> AVCaptureDevice.Format?
  • 指定された FPS 値をサポートしているレンジが存在すれば、その値を返します。 存在しない場合はサポートされているレンジの中で最大の値を返します。

    Declaration

    Swift

    public static func maxFrameRate(_ frameRate: Int, for format: AVCaptureDevice.Format) -> Int?
  • 引数に指定された capturer を停止し、反対の position を持つ CameraVideoCapturer を起動します。 CameraVideoCapturer の起動には、 capturer と近い設定のフォーマットとフレームレートが利用されます。 また、起動された CameraVideoCapturer には capturer の保持する MediaStream が設定されます。

    Declaration

    Swift

    public static func flip(_ capturer: CameraVideoCapturer, completionHandler: @escaping ((Error?) -> Void))

プロパティ

  • 出力先のストリーム

    Declaration

    Swift

    public var stream: MediaStream?
  • カメラが起動中であれば true

    Declaration

    Swift

    public private(set) var isRunning: Bool { get }
  • イベントハンドラ

    Declaration

    Swift

    public static var handlers: CameraVideoCapturerHandlers
  • カメラの位置

    Declaration

    Swift

    public var position: AVCaptureDevice.Position { get }
  • 使用中のデバイス

    Declaration

    Swift

    public var device: AVCaptureDevice
  • フレームレート

    Declaration

    Swift

    public private(set) var frameRate: Int? { get }
  • フォーマット

    Declaration

    Swift

    public private(set) var format: AVCaptureDevice.Format? { get }
  • 引数に指定した device を利用して CameraVideoCapturer を初期化します。 自動的に初期化される静的プロパティ、 front/back を定義しています。 上記以外のデバイスを利用したい場合のみ CameraVideoCapturer を生成してください。

    Declaration

    Swift

    public init(device: AVCaptureDevice)

カメラの操作

  • カメラを起動します。

    このメソッドを実行すると、 UIDevicebeginGeneratingDeviceOrientationNotifications() が実行されます。 beginGeneratingDeviceOrientationNotifications() または endGeneratingDeviceOrientationNotifications() を使う際は 必ず対に実行するように注意してください。

    Declaration

    Swift

    public func start(format: AVCaptureDevice.Format,
                      frameRate: Int,
                      completionHandler: @escaping ((Error?) -> Void))
  • カメラを停止します。

    このメソッドを実行すると、 UIDeviceendGeneratingDeviceOrientationNotifications() が実行されます。 beginGeneratingDeviceOrientationNotifications() または endGeneratingDeviceOrientationNotifications() を使う際は 必ず対に実行するように注意してください。

    Declaration

    Swift

    public func stop(completionHandler: @escaping ((Error?) -> Void))
  • 停止前と同じ設定でカメラを再起動します。

    Declaration

    Swift

    public func restart(completionHandler: @escaping ((Error?) -> Void))
  • カメラを停止後、指定されたパラメーターで起動します。

    Declaration

    Swift

    public func change(format: AVCaptureDevice.Format? = nil, frameRate: Int? = nil, completionHandler: @escaping ((Error?) -> Void))