Как открыть файл списка воспроизведения с помощью C# wmp
Когда я использую Player.playlistCollection.newPlaylist("name")
он создает файл name.wpl в каталоге списка воспроизведения по умолчанию (C:\Users\username\Music\Playlists). Как я могу открыть этот файл, когда перезапущу приложение и передам его в Player?
3 ответа
Я решил это путем создания пользовательских файлов плейлиста, где каждая строка является URL-адресом медиа-файла. Поэтому, когда приложение запускается, оно читает строку за строкой и добавляет его в список воспроизведения wmp.
private WMPLib.IWMPPlaylist openPlaylist(string playlistName)
{
WMPLib.IWMPPlaylist tempPlaylist = Player.newPlaylist(playlistName, null);
using (System.IO.StreamReader sr = new System.IO.StreamReader(System.IO.Directory.GetCurrentDirectory() + "\\playlists\\" + playlistName + ".cpt"))
{
while (sr.Peek() >= 0)
{
string tempMediaUrl = sr.ReadLine();
WMPLib.IWMPMedia tempMedia = Player.newMedia(tempMediaUrl);
tempPlaylist.appendItem(tempMedia);
}
return tempPlaylist;
}
}
Вот пример. Здесь я получаю файл из папки "Видео" в папке приложения и создаю плейлист и играю в цикле
private void GetMediaFiles()
{
FilePath = Application.StartupPath + "\\Videos\\";
FileCount = Directory.GetFiles(FilePath).Length;
Files = Directory.GetFiles(FilePath);
playlist = axWMPlayer.playlistCollection.newPlaylist("PlaylistName");
for (int Count = 0; Count < FileCount; Count++)
{
media = axWMPlayer.newMedia(Files[Count]);
playlist.appendItem(media);
}
RunMedia();
}
private void RunMedia()
{
try
{
if (playlist.count > 0)
{
axWMPlayer.BringToFront();
axWMPlayer.currentPlaylist = playlist;
axWMPlayer.Ctlcontrols.play();
axWMPlayer.stretchToFit = true;
}
else
{
pbDefaultImage.BringToFront();
}
}
catch (Exception ex)
{
LogException(ex);
}
}
Создайте файл настроек.ini в каталоге вашего приложения. Сохраните путь к вашему плейлисту там. Затем, когда программа запускается, прочитайте ваш файл настроек и получите путь к вашему плейлисту.