SampleBufferManager

public class SampleBufferManager : NSObject, AVCaptureVideoDataOutputSampleBufferDelegate, AVCaptureAudioDataOutputSampleBufferDelegate

CMSampleBuffer を管理するクラス。 入力したサンプルの間引きを行うことができます。

  • ダウンサンプリングされているか。

    Declaration

    Swift

    public private(set) var isDownSampling: Bool
  • 入力サンプルのサンプリングレート。

    Declaration

    Swift

    public private(set) var sourceSampleRate: Int
  • ダウンサンプリング後のサンプリングレート。

    Declaration

    Swift

    public private(set) var downSampleRate: Int
  • 出力するデータのサンプリングレート。

    Declaration

    Swift

    public var sampleRate: Int { get }
  • 最後に取得したビデオサンプル。

    Declaration

    Swift

    public private(set) var lastVideoSample: CMSampleBuffer?
  • 最後に取得した音声サンプル。

    Declaration

    Swift

    public private(set) var lastAudioSample: CMSampleBuffer?
  • tag

    オブジェクトを識別するためのタグ。

    Declaration

    Swift

    public var tag: Int
  • このクラスが使用する Delegate。

    Declaration

    Swift

    public weak var delegate: SampleBufferManagerDelegate?
  • SampleBufferMannager を生成します。

    Declaration

    Swift

    public init(sourceSampleRate: Int = 0, downSampleRate: Int = 0)

    Parameters

    sourceSampleRate

    入力サンプルのサンプリングレート

    downSampleRate

    ダウンサンプリング後のサンプリングレート
    ダウンサンプリングしない場合は 0 を設定します。

  • AVCaptureAudioDataOutput をアタッチします。

    Declaration

    Swift

    public func attach(output: AVCaptureAudioDataOutput, queue: DispatchQueue? = nil)

    Parameters

    output

    AVCaptureAudioDataOutput

    queue

    DispatchQueue

  • AVCaptureAudioDataOutput をアタッチします。

    Declaration

    Swift

    public func attach(output: AVCaptureVideoDataOutput, queue: DispatchQueue? = nil)

    Parameters

    output

    AVCaptureVideoDataOutput

    queue

    DispatchQueue

  • SampleBufferMannager を初期化します。

    Declaration

    Swift

    public func reset(sourceSampleRate: Int, downSampleRate: Int = 0)

    Parameters

    sourceSampleRate

    入力サンプルのサンプリングレート

    downSampleRate

    ダウンサンプリング後のサンプリングレート

  • Declaration

    Swift

    public func didReceivedVideoSample(sampleBuffer: CMSampleBuffer, timestamp: MediaTimestamp)
  • Declaration

    Swift

    public func didReceivedAudioSample(sampleBuffer: CMSampleBuffer, timestamp: MediaTimestamp)
  • AVCaptureVideoDataOutputSampleBufferDelegateAVCaptureAudioDataOutputSampleBufferDelegate を満たすためのメソッド。 AVCaptureVideoDataOutput.sampleBufferDelegateAVCaptureAudioDataOutput.sampleBufferDelegate として本クラスのオブジェクトを使用できます。

    Declaration

    Swift

    public func captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from conection: AVCaptureConnection)

    Parameters

    output

    AVCaptureOutput

    sampleBuffer

    CMSampleBuffer

    from

    AVCaptureConnection

  • AVCaptureVideoDataOutputSampleBufferDelegate を満たすためのメソッド。 AVCaptureVideoDataOutput.sampleBufferDelegate として本クラスのオブジェクトを使用できます。

    Declaration

    Swift

    public func captureOutput(_ output: AVCaptureOutput, didDrop sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection)

    Parameters

    output

    AVCaptureOutput

    sampleBuffer

    CMSampleBuffer

    from

    AVCaptureConnection