Могу ли я использовать OSX AUGraph из monomac?

У меня есть приложение для воспроизведения mp3, написанное на C #, которое я хотел бы перенести на OSX.

Поскольку он использует DirectShow для воспроизведения mp3, я понимаю, что мне нужно будет перекодировать часть воспроизведения звука. Я нашел образец файла воспроизведения Apple, который использует AUGraph.

В разделе Binding Cocoa http://www.mono-project.com/MonoMac упоминается " гораздо проще AudioToolBox API ».

Может ли кто-нибудь указать мне на образец кода для использования AudioToolBox с C # или, желательно, с использованием AUGraph с C #.

Перенос моего кода на monomac - лучший подход, или мне лучше сделать решительный шаг и перекодировать в Objective C.


person Nick Williamson    schedule 07.10.2010    source источник


Ответы (3)


Вот несколько примеров использования AudioUnit с использованием того же API, что и у MonoMac, за исключением того, что эти примеры нацелены на iPhone с помощью MonoTouch:

https://github.com/migueldeicaza/MonoTouch.AudioUnit

Настройка AudioUnit немного обременительна. Если все, что вам нужно, - это воспроизводить файлы MP3 без выполнения какой-либо низкоуровневой обработки или применения эффектов, вы можете вместо этого использовать API MonoMac.AppKit.NSSound.

person miguel.de.icaza    schedule 07.11.2010

На странице, которую вы связали, говорится, что AudioToolbox (то есть CoreAudio) полностью привязан. Я не знаю примеров, но перенести код на C не составит труда.

В качестве альтернативы вы можете зайти в список рассылки mono-osx и запросить привязку QTKit или даже выполнить эту привязку самостоятельно. Я слышал, что генератор привязки MonoMac упрощает привязку API-интерфейсов Objective-C.

Будет намного быстрее и проще использовать существующий код и знания C #, даже если вам придется делать некоторые привязки самостоятельно.

person Mikayla Hutchinson    schedule 27.10.2010

AUGraph является частью Core Audio. Он используется для построения графика аудиоустройств и может использоваться для воспроизведения звука. Core Audio - это фреймворк низкого уровня с API C.
Возможно, вы можете использовать QTKit (оболочку какао вокруг QuickTime) из Mono.

На мой взгляд, это всегда лучший подход к работе с «нативной» технологией платформы. (Это будет Objective-C и Какао для Mac OS X). У Apple есть хороший пример, показывающий, как создать медиаплеер с помощью QTKit: http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/QTKitApplicationTutorial/Introduction/Introduction.html%23//apple_ref/doc/uid/TP40008155-CH1-SW1

person Thomas Zoechling    schedule 07.10.2010
comment
MonoMac - это Какао. Это ничем не отличается от использования, например, Макруби. - person Mikayla Hutchinson; 27.10.2010