2012-04-10 65 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

相關問題