如何在Swift 3中创建AudioQueueInputCallback?
问题描述:
In the Apples Swift 3 API 核心音频方法AudioQueueNewInput(...)
用于创建新的录制音频队列对象。如何在Swift 3中创建AudioQueueInputCallback?
其中一个参数inCallbackProc是类型AudioQueueInputCallback
。请参阅this以获取AudioQueueNewInput
函数的完整声明。
的AudioQueueInputCallback
本身的声明如下所示:
typealias AudioQueueInputCallback = (UnsafeMutableRawPointer?, AudioQueueRef, AudioQueueBufferRef, UnsafePointer<AudioTimeStamp>, UInt32, UnsafePointer<AudioStreamPacketDescription>?) -> Void
我想创建一个功能,我可以放心地传递到AudioQueueNewInput
功能。我试过如下:
func audioQueueInputCallback(inUserData: UnsafeMutableRawPointer?,
inQueue: AudioQueueRef,
inBuffer: AudioQueueBuffer,
inStartTime: UnsafePointer<AudioTimeStamp>,
inNumPackets: UInt32,
inPacketDesc: UnsafePointer<AudioStreamPacketDescription>?) {
// Handle stuff
}
可悲的是Xcode中似乎无法到我的功能转换为类型AudioQueueInputCallback
。我在这里错过了什么?
答
回调函数的第三个参数应该是一个AudioQueueBufferRef,而不是一个AudioQueueBuffer。
参见:https://developer.apple.com/reference/audiotoolbox/audioqueuebufferref
哇,这么一个简单的办法。谢谢! – Herickson