2012-04-10 61 views
1

我正在尝试将缓冲区添加到队列中,并且想要按照iOS音频工具箱文档中所述使用AudioQueueEnqueueBufferWithParameters。我发现它是MonoTouch部件浏览器中的一个私有外部设备。是否在Monotouch中实现了AudioQueueEnqueueBufferWithParameters?

[DllImport ("/System/Library/Frameworks/AudioToolbox.framework/AudioToolbox")] 
    private static extern AudioQueueStatus AudioQueueEnqueueBufferWithParameters...... 

是否有可能在其他地方声明这个extern以便使用它? 如果是这样,怎么样?

回答

1

一般p/invoke声明在MonoTouch中都标记为private。然后提供更安全和更易于使用的管理替代品。

在这种特定情况下,AudioQueueEnqueueBufferWithParameters p/invoke从公共AudioQueue.EnqueueBuffer方法中调用。由于这是MonoTouch和MonoMac共享的代码的一部分,因此您可以看到完整的源代码here

当然,您仍然可以将之前的p/invoke声明复制粘贴到您自己的应用程序中,它也可以工作(但在某些情况下,它可能与相关托管API交互更复杂)。

+0

谢谢。这非常有帮助。 – user1323042 2012-04-10 12:23:25

相关问题