如何在 Swift 3 中创建 AudioQueueInputCallback?

用户名

在 Apples Swift 3 API Core Audio 中,该方法AudioQueueNewInput(...)用于创建新的录音音频队列对象。

CallbackProc中的参数之一是 Type AudioQueueInputCallback有关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我在这里缺少什么?

热爪2

回调函数的第三个参数应该是 AudioQueueBufferRef ,而不是 AudioQueueBuffer。

请参阅:https : //developer.apple.com/reference/audiotoolbox/audioqueuebufferref

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章