나는 Swift에서이 AVFoundation
함수를 호출하는 방법을 알아 내려고하고있다. 저는 선언과 구문을 다루는 데 많은 시간을 할애했고, 지금까지 이걸 가지고 있습니다. 컴파일러는 대부분 행복하지만 마지막 난제가 하나 남아 있습니다.CMSampleBufferGetAudioBufferListWithRetainedBlockBuffer를 어떻게 호출합니까?
public func captureOutput(
captureOutput: AVCaptureOutput!,
didOutputSampleBuffer sampleBuffer: CMSampleBuffer!,
fromConnection connection: AVCaptureConnection!
) {
let samplesInBuffer = CMSampleBufferGetNumSamples(sampleBuffer)
var audioBufferList: AudioBufferList
var buffer: Unmanaged<CMBlockBuffer>? = nil
CMSampleBufferGetAudioBufferListWithRetainedBlockBuffer(
sampleBuffer,
nil,
&audioBufferList,
UInt(sizeof(audioBufferList.dynamicType)),
nil,
nil,
UInt32(kCMSampleBufferFlag_AudioBufferList_Assure16ByteAlignment),
&buffer
)
// do stuff
}
컴파일러는 3, 4 인수에 대해 불평 :이
및
변수를 '초기화되기 전에 촬영 한'audioBufferList '변수의
주소 audioBufferList '초기화되기 전에 사용됨
그래서 여기서해야 할 일은 무엇입니까?
저는 this StackOverflow answer으로 일하고 있지만 Objective-C입니다. 나는 이것을 Swift로 번역하려하지만이 문제에 부딪치게됩니다.
아니면 더 나은 방법이 있습니까? 한 번에 한 샘플 씩 버퍼에서 데이터를 읽어야하므로 기본적으로 반복 할 수있는 샘플 배열을 얻으려고합니다.
난 그냥 사실에 관하여이었다. 오늘 아침에 들었어. – nhgrif