Вопрос

Я ищу кроссплатформенный (.Net и Mono в Windows, MacOSX и Linux) способ декодирования файлов wav, mp3 или ogg таким образом, чтобы затем я мог воспроизводить декодированные потоки через DirectSound или OpenAL по желанию.

Решения, которое может декодировать либо mp3, либо ogg, было бы достаточно - в декодировании обоих нет необходимости.Если это (или другое решение) также может декодировать wav, это было бы идеально, но не является строго необходимым, поскольку я потенциально мог бы конвертировать свои wav-файлы в mp3 или ogg.

Решение, которое может декодировать только wav-файлы, является лишь частичным решением, но я воспользуюсь тем, что смогу получить.;-)

Вот то, что я уже просмотрел:

  • DirectSound и Alut поддерживают WAV-декодирование, но Alut устарел.
  • ffmpeg будет декодировать практически все, но, похоже, у него нет общего стабильного выпуска на разных платформах?
  • Я еще не пробовал csvorbis, но он очень старый, и я не уверен, каков его текущий статус.

Вы более чем можете попытаться убедить меня, что одно из вышеперечисленных решений на самом деле является лучшим вариантом.

Спасибо.

Это было полезно?

Решение

Для простой поддержки файлов WAV вы можете посмотреть реализацию mono в mcs/class/System/System.Media/audioData.cs (http://anonsvn.mono-project.com/viewvc/trunk/mcs/class/System/System .Медиафайлы/).

Для декодирования аудиофайлов ogg вы можете обратиться к модулю csvorbis на сервере sn mono's:http://anonsvn.mono-project.com/viewvc/trunk/csvorbis/

Другие советы

Вы не упомянули, какого рода лицензирование вы ищете.Я добился отличных результатов с FMOD ( МОД ), который доступен бесплатно для некоммерческих проектов.Он воспроизводит множество форматов, включая ogg и mp3, и имеет обширный API для управления их воспроизведением.Это кроссплатформенный, как вам и требуется.

FMOD в значительной степени ориентирован на игры;Я не удивлюсь, если он уже поставляется с отличными 3D-функциями (хотя я не знаю наверняка).

Как вы можете сказать, я большой поклонник, в основном потому, что было на удивление безболезненно заставить пустой проект C # впервые воспроизвести файл OGG.

Вы должны иметь возможность воспроизводить .файлы wav напрямую с системой.Медиафайлы.Звуковой проигрыватель.Не уверен, поможет ли это вашему варианту использования.

Я работал с ffmpeg, и пока мне это нравится.Да, в разных выпусках есть несколько проблем, но это самый эффективный из всех.

Чтобы частично ответить на мой собственный вопрос, оказывается, что написать свой собственный WAV-загрузчик довольно легко.Я использовал эту статью, которая описывает формат файла wav:

http://www.sonicspot.com/guide/wavefiles.html

как всегда, fmod - это ваш ответ...пожалуйста, не стесняйтесь получить решение всех ваших проблем на http://www.fmod.org/index.php/download#FMODExProgrammersAPI

https://sites.google.com/site/cobnut3d/

SlimDX.DirectSound - это пример кода для C #.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top