我希望将Naudio用于我正在制作的游戏中。
我编写了一个简单的初始化例程,目前有:
IWavePlayer wavePlayer1;
AudioFileReader file1;
string filename1 = "D:\\Programming\\SFX\\MUSIC\\IN_GAME_1.wav";
wavePlayer1 = new WaveOut();
file1 = new AudioFileReader(filename1);
wavePlayer1.Init(file1);
Thread thread1 = new Thread(new ThreadStart(wavePlayer1.Play));
thread1.Start();
当我运行游戏时,wav文件可能会播放半秒钟,然后停止播放,一秒钟后它会恢复播放。
如果我在启动线程后立即放置System.Threading.Thread.Sleep(5000),则延迟还有5秒。这似乎证明'thread1.Start();'实际上并没有在它自己的线程中启动声音。
作为一个线程和Naudio noob谁能告诉我我在这里做错了什么?我对游戏的要求就是能够同时播放几种声音。没什么大不了的。
有什么想法吗?
提前致谢!
答案 0 :(得分:0)
呼叫Play
只是开始播放。在播放完成之前它不会阻止。所以根本不需要线程。只需致电wavePlayer1.Play
即可。您需要订阅PlaybackStopped
,以便妥善处理输入文件和播放设备。