Воспроизведение звуков последовательно 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().


Ответы (0 шт):