Есть ли какой-нибудь звуковой SDK, который работает с .NET? - PullRequest
3 голосов
/ 10 мая 2010

Я работаю над игрой на C # XNA, самые популярные звуковые SDK, такие как MSS или FMOD, в основном работают с C / C ++.

Ответы [ 7 ]

2 голосов
/ 02 июня 2010

Умм ... Почему вы ищете звуковой SDK для .NET? XNA уже поставляется с XACT и полностью поддерживает его на нескольких платформах.

Вот учебник по документации MSDN

0 голосов
/ 02 июня 2010

Существуют оболочки .NET для FMOD (FMOD.net) , а также для BASS (nBASS) .

Я работал с обоими, я думаю, что FMOD.net является лучшим из обоих.

0 голосов
/ 24 мая 2010

Что вы хотите сделать со звуком, которого вы не можете достичь с помощью возможностей воспроизведения звука XNA? http://msdn.microsoft.com/en-us/library/bb195038.aspx

Обратите внимание, что если вы вызываете внешний аудиоинтерфейс API, шансы на плавный перенос вашего кода на XBox, WinPhone и т. Д. Значительно уменьшаются.

0 голосов
/ 17 мая 2010

BASS работает с .Net

0 голосов
/ 17 мая 2010

Я согласен с Avram выше, хотя я не стал бы пинвокировать, я бы сгенерировал оболочку, используя tlbimp.exe, если вы можете, вы сможете найти тип lib в одном из ваших любимых API C / C ++ с открытым кодом запустите на нем tlbimp.exe.

Таким образом, вы получаете все льготы API без необходимости обрабатывать pinvoke / другие небезопасные вызовы сами, обертка может справиться со всеми неприятностями для вас.

...

Я бы, однако, задал вопрос, что вы хотите делать со звуком, который вы уже не можете сделать с помощью небольшого количества причудливого кодирования, используя базовые классы .Net и XNA. установите стороннее аудиофильное приложение и извлеките из него dll-файлы, а затем привяжите методы к ним (хотя это очень тяжелая работа).

Если вы хотите избежать вызовов pinvoke altogeher, вы в значительной степени привязаны к тому, что есть в самой XNA.

Хотя существует множество игровых движков, пусть один из них содержит несколько классных аудио классов, которые вы можете позаимствовать.

0 голосов
/ 11 мая 2010

На самом деле все не так плохо, потому что вы можете вызывать библиотеки c / cpp из csharp , используя P / Invoke. Если вы остаетесь с окнами, вам просто нужно создать (или найти) слой между C # и выбранной вами библиотекой.
Там небольшой пример как вызывать функцию из cpp dll.

0 голосов
/ 10 мая 2010

NAudio работает с .NET, но, к сожалению, я считаю, что он широко использует P / Invoke. Это означает, что, хотя вы сможете использовать его из XNA в Windows, у вас, вероятно, будут проблемы, если вам понадобится запустить код на таких устройствах, как XBox.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...