我正在使用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;
}
我使用了1.7.3.0版本的NAudio并尝试替换另一个DLL副本,但它不起作用。
答案 0 :(得分:1)
您只应在输出设备上拨打Init
一次。尝试关闭现有的WaveOut
设备并创建一个新设备以播放下一个文件。