Программа создаёт стандартный плейлист для медиа проигрывателя и позволяет воспроизводить файлы списком. Список создаётся во временной директории (Temp). На форму (Form1) добавлены три контрола, сам «WindowsMediaplayer1», кнопка с названием «Open_File»(переименована из  Button1) и диалог – «OpenFileDialog1», в котором активировано свойство мультиселект. Вот собственно и всё. Программу писал для личного интеллектуального медиа проигрывателя и пришлось решать вопрос о стандартном списке воспроизведения. Публикую упрощённую часть программы исключительно для ознакомления, и ответственности за действия пользователей не несу. Да, есть там нюанс, в некоторых названиях мультимедийного контента встречаются нестандартные символы, типа “@”, так вот, этот плейер их не играет, думает, что это ссылка, но это редкий случай, если есть желание, то можете прописать условия и фильтры. Созданный список Mylist можно скопировать в любую папку, и переименовать.  Входящий в состав операционной системы проигрыватель будет его видеть. Можете доработать программу по своему вкусу и цвету, творчество безгранично, удачи! Название программы Mplay, код ниже по списку.

using System;
using System.IO;
using System.Text;
using System.Windows.Forms;

namespace Mplay
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Open_File_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{

string[] filestring = openFileDialog1.SafeFileNames; //Открываем список файлов в диалоге
string[] pathstring = openFileDialog1.FileNames; //Присваиваем переменной список путей к файлам
string result = Path.GetTempPath(); // Получаем путь к временному директорию
string path = result + @"Mylist.wpl"; //Создаю путь файла списка
File.Delete(path); //Очищаю предыдущий список, если он там был (ошибки если нет, не вызывает)
for (int i = 0; i < filestring.Length; i++) // Начинаю цикл записи в файл списка
{
if (!File.Exists(path)) //Если файл пустой создаю разметку
{
string createText = "<?wpl version" + "=" + '\u0022' + "1.0" + '\u0022' + "?>" + Environment.NewLine +
"<smil>" + Environment.NewLine +
"<head>" + Environment.NewLine +
"<meta name=" + '\u0022' + "Generator" + '\u0022' + " content=" + '\u0022' + "Microsoft Windows Media Player -- 12.0.14393.447" +
'\u0022' + "/>" + Environment.NewLine +
"</head>" + Environment.NewLine +
"<body>" + Environment.NewLine +
"<seq>" + Environment.NewLine;
File.WriteAllText(path, createText, Encoding.UTF8);// Запись в файл заголовка

}
// и собственно, сам список ссылок на файлы в разметке
string appendText = "<media src=" + '\u0022' + pathstring[i] + '\u0022' + "/>" + Environment.NewLine;
File.AppendAllText(path, appendText, Encoding.UTF8);
var si = Convert.ToString(i + 1); //переменная количества файлов, в моём случае говорит сколько файлов открыто(голосовое управление)
}
string appText = "</seq>" + Environment.NewLine +
"</body>" + Environment.NewLine + "</smil>";
File.AppendAllText(path, appText, Encoding.UTF8); // Ну и закрываю тэги

axWindowsMediaPlayer1.URL = result + @"Mylist.wpl"; // Проигрываем пластинку

}
}
}
}

 

Copyright©Aleksei Tarasov (2021)