Я знаю, что это может звучать как субъективный вопрос, но мне нужны хорошо обоснованные мнения по этой теме:
В графическом интерфейсе C # / WPF мне нужно воспроизводить коротковолновые файлы в ответ пользователю взаимодействие.
Спецификации следующие:
- низкая задержка (немедленное начало воспроизведения)
- код должен быть родным C # (.Net 4.0)
- должен уживаться с WPF
- несколько одновременных воспроизведений
- без ограничений на управление звуковым буфером
- гарантированное будущее (я хочу использовать что-то, что будет поддерживать через несколько лет.)
- модуль звукового проигрывателя должен быть простым классом (= код C #), а не инкапсулированной dll
До теперь я неплохо ладил с DirectSound (используя Microsoft DirectX SDK), он соответствует всем требованиям, упомянутым выше. Начиная с Visual Studio 2010 (.Net 4.0), управляемый DirectX (MDX) больше не поддерживается, и он также исчез из последней версии DirectX SDK.
Какие у меня варианты сейчас?
- XNA кажется излишним (слишком большим) для меня, так как я разрабатываю не игру, а приложение.
Предполагается, что он заменит MDX, но я читал много страшных историй о его реализации. Или это все сказки?
- SlimDX может быть вариантом, но это сторонний продукт и, опять же, довольно большой проект.
- Я знаю несколько «небольших» решений, каждое со своими недостатками:
- MediaElement (только с WMP10 +)
- P / Invoke с WinMM
- PlaySound
- SoundPlayer
- MediaPlayer
- Существует множество настраиваемых аудиобиблиотек, которые работают более или менее хорошо.
(NAudio, BASS, waveOut ...)
Я действительно озадачен тем, какой из них мне следует использовать для нового проекта. Я не хочу копаться в совершенно новом фреймворке только для того, чтобы узнать, что его ограничения мешают мне его использовать.
Заранее спасибо!
задан Community 23 May 2017 в 12:31
поделиться