1

我正在尝试将缓冲区添加到队列中,并希望AudioQueueEnqueueBufferWithParameters按照 iOS 音频工具箱文档中的说明使用。我看到它是 MonoTouch 程序集浏览器中的私有外部。

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

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

4

1 回答 1

1

通常p/invoke声明都private在 MonoTouch 中标记。然后提供更安全、更易于使用的托管替代方案。

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

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

于 2012-04-10T12:10:58.107 回答