我试图将缓冲区添加到队列中,并想使用AudioQueueEnqueueBufferWithParameters
,如iOS Audio Toolbox文档中所述。我看到它是MonoTouch程序集浏览器中的一个私人外部。
[DllImport ("/System/Library/Frameworks/AudioToolbox.framework/AudioToolbox")]
private static extern AudioQueueStatus AudioQueueEnqueueBufferWithParameters......
是否可以在其他地方声明此extern以便使用它?
如果是这样,怎么办?
最佳答案
通常,p / invoke声明在MonoTouch中都标记为private
。然后提供了更安全,更易于使用的托管替代方案。
在这种特定情况下,从公共AudioQueueEnqueueBufferWithParameters
方法调用AudioQueue.EnqueueBuffer
p /调用。由于这是MonoTouch和MonoMac之间共享的代码的一部分,因此可以看到完整的源代码here。
当然,您仍然可以将先前的p / invoke声明复制粘贴到您自己的应用程序中,并且它也可以工作(但是在某些情况下,与相关的托管API进行交互可能会更复杂)。
关于c# - 是否在Monotouch中实现AudioQueueEnqueueBufferWithParameters?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10082309/