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?
-
オブジェクトを識別するためのタグ。
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
ダウンサンプリング後のサンプリングレート
-
delegate の
SampleBufferManagerDelegate.captureVideoOutput(_:sampleBuffer:timestamp:)
を呼び出します。Declaration
Swift
public func didReceivedVideoSample(sampleBuffer: CMSampleBuffer, timestamp: MediaTimestamp)
-
delegate の
SampleBufferManagerDelegate.captureAudioOutput(_:sampleBuffer:timestamp:)
を呼び出します。Declaration
Swift
public func didReceivedAudioSample(sampleBuffer: CMSampleBuffer, timestamp: MediaTimestamp)
-
AVCaptureVideoDataOutputSampleBufferDelegate
やAVCaptureAudioDataOutputSampleBufferDelegate
を満たすためのメソッド。AVCaptureVideoDataOutput.sampleBufferDelegate
やAVCaptureAudioDataOutput.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