2012-04-10 9 views
1

Ich versuche, Puffer zu einer Warteschlange hinzuzufügen und möchte die AudioQueueEnqueueBufferWithParameters wie in der iOS Audio Toolbox-Dokumentation beschrieben verwenden. Ich sehe, dass es sich um ein privates Extern im MonoTouch Assembly Browser handelt.Ist AudioQueueEnqueueBufferWithParameters in Monotouch implementiert?

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

Ist es möglich, dieses extern woanders zu deklarieren, um es zu benutzen? Wenn ja, wie?

Antwort

1

Im Allgemeinen p/invoke Deklarationen sind alle markiert private in MonoTouch. Es werden dann sicherere und benutzerfreundlichere verwaltete Alternativen bereitgestellt.

In diesem speziellen Fall wird die AudioQueueEnqueueBufferWithParameters p/invoke von der öffentlichen AudioQueue.EnqueueBuffer Methode aufgerufen. Da dies Teil des Codes ist, der zwischen MonoTouch und MonoMac geteilt wird, können Sie den vollständigen Quellcode here sehen.

Natürlich können Sie die vorherige p/invoke-Deklaration immer noch in Ihre eigene Anwendung kopieren und einfügen, und es funktioniert auch (aber in manchen Fällen ist es möglicherweise komplexer, mit der zugehörigen verwalteten API zu interagieren).

+0

Danke. Das war sehr hilfreich. – user1323042