我在停止/暂停Mp3队列时遇到问题。有什么帮助吗?我使用Githup的此类。它工作正常,但无法阻止它:
public class playr { private Queue<string> playlist; private IWavePlayer player = new WaveOutEvent(); private WaveStream fileWaveStream; public playr() { } public playr(List<string> startingPlaylist) { playlist = new Queue<string>(startingPlaylist); } public void PlaySong() { if (playlist.Count < 1) { return; } if (player != null && player.PlaybackState != PlaybackState.Stopped) { player.Stop(); } if (fileWaveStream != null) { fileWaveStream.Dispose(); } if (player != null) { player.Dispose(); player = null; } player = new WaveOutEvent(); fileWaveStream = new NAudio.Wave.Mp3FileReader(playlist.Dequeue(), new Mp3FileReader.FrameDecompressorBuilder(waveFormat => new NLayer.NAudioSupport.Mp3FrameDecompressor(waveFormat))); var stream = new BlockAlignReductionStream(fileWaveStream); player.Init(fileWaveStream); player.Play(); player.PlaybackStopped += (sender, evn) => { PlaySong(); }; } }
我从datagridview弹出mp3文件。目标是播放mp3声音和绘制图表。
private void Play_Click(object sender, EventArgs e) { try { playlist = new List<string>(); for (int item = 0; item < dataGridView1.Rows.Count - 1; item++) { playlist.Add(@"mp3Conversion\sounds\" + dataGridView1.Rows[item].Cells["mp3"].Value.ToString()); } playr playr = new playr(playlist); playr.PlaySong(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
当我单击停止按钮时,它不会停止。有没有添加通知程序或管理队列的方法?
private void btnStop_Click(object sender, EventArgs e)
{
try
{
var playr = new playr(playlist);
playr.stopit();
}
catch (Exception ex) { MessageBox.Show(ex.ToString()); }
}
我在停止/暂停Mp3队列时遇到问题。有什么帮助吗?我使用Githup的此类。它工作正常,但不能阻止它:public class playr {private Queue
我希望帮助您还为时不晚
您不能暂停,因为您正在丢失对定义新对象的对象的引用