Я хочу иметь возможность асинхронно выгружать звуковые файлы на аудиовыход на протяжении всей жизни приложения. Мне нужно иметь возможность запросить файл для воспроизведения и смешать его с любыми файлами, которые уже воспроизводятся. Один и тот же файл может вызываться несколько раз. Подходит ли вам WaveMixerStream? Безопасно ли/рекомендуется ли держать поток проигрывателя и микшера открытым на протяжении всего срока службы приложения или это вызовет проблемы с производительностью?
//globals
IWavePlayer _Context;
WaveMixerStream32 _Mixer;
//constructor
_Context = new DirectSoundOut();
_Mixer = new WaveMixerStream32();
_Context.Init( Instance._Mixer );
_Context.Play();
//asynchronous sound output, on demand from user interface
_Mixer.AddInputStream( sound.FileWaveStream );