我希望能够在应用程序的整个生命周期中异步地将声音文件转储到音频输出。我需要能够请求要播放的文件并将其与任何已经播放的文件混合。同一个文件可能会被调用多次。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 );