Воспроизведение аудиофайлов mp3 один за другим замораживает форму
Привет Я работаю над проектом на языке C# (visual studio 2015).
У меня проблема. когда я проигрываю много аудиофайлов один за другим, форма зависает, и я не могу выполнить другую задачу на этой форме, например выбрать другой вариант из поля со списком или даже переместить форму при перетаскивании мыши.
Мои аудиофайлы имеют короткую продолжительность, в среднем от 10 до 20 секунд. Форма зависает во время воспроизведения звука. Перед его запуском размораживается следующая аудиоформа. но это едва ли на одну секунду, а затем снова замирает, потому что он воспроизводит следующий звук.
Вот мой код:
Что я уже пробовал:
<pre> private void cmbVerse_SelectedIndexChanged(object sender, EventArgs e) { comboBox1.SelectedIndex = listView1.Items.IndexOf(listView1.SelectedItems[0]); int surah = listView1.Items.IndexOf(listView1.SelectedItems[0]) + 1; //Load Surah Text file here. i.e. 001.txt lines = File.ReadAllLines(@"C:\Users\Sajid Qureshi\Documents\Visual Studio 2015\Projects\First\First\bin\Debug\Resources\" + surah.ToString("000") + ".txt"); currentIndex = cmbVerse.SelectedIndex; richTextBox1.Text = lines[currentIndex]; mPlayer.URL = Application.StartupPath + "\\Ayaat\\"+(comboBox1.Text).Substring(0,3) + (Int32.Parse(cmbVerse.Text)).ToString("000") + ".mp3"; mPlayer.Ctlcontrols.play(); Application.DoEvents(); Thread.Sleep(TimeSpan.FromSeconds(mPlayer.currentMedia.duration)); mPlayer.Ctlcontrols.stop(); if (cmbVerse.SelectedIndex < cmbVerse.Items.Count-1 ) cmbVerse.SelectedIndex += 1; }
Я думаю, что эта линия вызывает проблемы.
Thread.Sleep(TimeSpan.FromSeconds(mPlayer.currentMedia.duration));
но без этого я не могу воспроизводить аудио один за другим.
Пожалуйста помочь
F-ES Sitecore
Вам понадобится какой-то способ узнать, когда звук перестал воспроизводиться, как какое-то событие конца или остановки. Используйте это событие, чтобы начать воспроизведение следующего бита аудио.