当NAudio WaveOut.int();时程序停止
本文关键字:程序 NAudio WaveOut int | 更新日期: 2023-09-27 18:01:05
我正在用NAudio Library制作我自己的音乐播放器,并配置播放列表功能。
一切都还可以,但我有一个小问题来完成它。
播放完成后,调用播放功能播放下一首音乐,并暂停节目。
我设置了断点并逐行执行,然后我找到了哪一行使程序停止。
AudioFileReader _audioFileReader;
IWavePlayer _waveOutDevice = new WaveOut();
(...)
private void PlaybackStopped(object sender, EventArgs e)
{
if (_manual_stop == false)
{
if (nowIndex + 1 == listMusic.Items.Count)
{
btnPlayCtrl.Text = "▶";
return;
}
else
{
nowIndex++;
playMusic();
}
}
else
{
btnPlayCtrl.Text = "▶";
return;
}
}
private void playMusic()
{
if (_paused == true)
{
_waveOutDevice.Play();
_paused = false;
return;
}
stopMusic();
_audioFileReader = new AudioFileReader(listMusic.Items[nowIndex].Text);
_waveOutDevice.Init(new WaveChannel32(_audioFileReader)); //It makes program halt
getProperties(listMusic.Items[nowIndex].Text);
_waveOutDevice.Play();
_manual_stop = false;
}
我使用了NAudio的1.7.3.0版本,并试图替换DLL的另一个副本,但它不起作用。
在输出设备上只应调用Init
一次。尝试关闭现有的WaveOut
设备,然后创建一个新设备来播放下一个文件。