Есть ли переносимый, а не ограниченный патентами способ воспроизведения сжатых звуковых файлов в С#/.Net? Я хочу играть короткие звуки "звон" в различных событиях, происходящих в программе.
System.Media.SoundPlayer может обрабатывать только WAV, но, как правило, они являются большими для встраивания в загружаемое приложение. MP3 защищен патентами, поэтому даже если бы был полностью управляемый декодер/плеер, он не был бы свободно перераспределять. Лучшим доступным форматом, казалось бы, был OGG Vorbis, но мне не повезло работать с библиотеками С# Vorbis (мне удалось извлечь исходный PCM с csvorbis, но я не знаю, как играть в нее потом).
Я не хочу распространять никакие двоичные файлы с моим приложением и не зависеть от P/Invoke, так как проект должен работать как минимум в Windows и Linux. Я в порядке с набором .Net-сборок, если они совместимы с лицензиями с GPL.
[этот вопрос является продолжением обсуждения рассылки по списку рассылки mono-dev год назад]