Воспроизведение звуков последовательно MediaPlayer c# (PlayAsync для MediaPlayer)
Разрабатываю Soundpad с возможностью записи. Для реализации имею пути к .MP3 файлам и MediaPlayer (так как SoundPlayer с его PlayAsync подойдут строго для .WAV). С записью все в порядке, а вот с воспроизведением некоторые трудности. Нужен алгоритм, который поможет мне воспроизвести последовательность звуков в порядке очереди, заданной заранее.
Вот мой код (не рабочий, т.к. для event нужно добавление в виде EventHandler):
MediaPlayer player = new MediaPlayer();
int queuePos = 0;//Позиция в массиве аудио-путей
List<string> setts = new List<string>();//Массив, содержащий первичные настройки (включая аудио-путь)
private void btnPlayQueue_Click(object sender, RoutedEventArgs e)
{
try
{
var queue = GetListedQueue();//Массив аудио-путей
for (queuePos = 0; queuePos < queue.Count;)
{
player.MediaEnded -= MediaEnded(sender, e);//Убираем прошлый обработчик, настроенный под предыдущий аудиофайл
queuePos++;//Сдвигаем текущий
player.MediaEnded += MediaEnded(sender, e);//Добавляем обработчик, с новым аудиофайлом
}
}
catch (Exception ex) { MessageBox.Show("btnPlayQueue_Click(): " + ex.Message); }
}
void MediaEnded(object sender, RoutedEventArgs e)
{
player.Open(new Uri(GetPath(setts, sender)));//Устанавливаем путь файла, привязанного к нажатой кнопке
if (queuePos == setts.Count - 1) player.Stop();//Если счет подошел к концу - прерываем
}
Помогите разобраться, как лучше реализовать поведение, аналогичное к SoundPlayer.PlayAsync().