Могу ли я использовать OSX AUGraph от Monomac? - PullRequest
0 голосов
/ 07 октября 2010

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

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

Раздел Binding Cocoa в http://www.mono -project.com / MonoMac упоминает «намного более простой API AudioToolBox».

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

Является ли перенос моего кода в monomac лучшим подходом, или мне лучше сделать решающий шаг и перекодировать в Objective C.

Ответы [ 3 ]

1 голос
/ 07 ноября 2010

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

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

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

0 голосов
/ 27 октября 2010

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

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

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

0 голосов
/ 07 октября 2010

AUGraph является частью Core Audio. Он используется для составления графика аудиоустройств и может использоваться для воспроизведения аудио. Core Audio - это низкоуровневая инфраструктура с C API.
Может быть, вы можете использовать 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

...