0

我正在尝试在 Windows 8 中制作播放列表。我可以创建播放列表,但 MediElement 不想播放该播放列表。我的问题是:如何.wpl使用 C# 在 Windows 8 中播放文件?这是我的代码:

  async private void PickAudioButton_Click(object sender, RoutedEventArgs e)
    {
        FileOpenPicker picker = MainPage.CreateFilePicker(MainPage.audioExtensions);
        IReadOnlyList<StorageFile> files = await picker.PickMultipleFilesAsync();

         MainPage.playlist = new Playlist();

            foreach (StorageFile file in files)
            {
                MainPage.playlist.Files.Add(file);
            }

            StorageFile savedFile = await MainPage.playlist.SaveAsAsync(KnownFolders.MusicLibrary,
                                                                        "Sample",
                                                                        NameCollisionOption.ReplaceExisting,
                                                                        PlaylistFormat.WindowsMedia);

            xcv.SetSource((await savedFile.OpenAsync(FileAccessMode.Read)), ".wpl");
            xcv.Play();
            MainPage.playlist = null;
       }
}
4

1 回答 1

1

更新 1

您可以通过类加载 WPL、ZPL 或 M3U 播放列表Playlist。检查下面给定的代码。

var filepicker = new FileOpenPicker();
filepicker.SuggestedStartLocation = PickerLocationId.MusicLibrary;
filepicker.FileTypeFilter.Add(".wpl");
filepicker.FileTypeFilter.Add(".zpl");
filepicker.FileTypeFilter.Add(".m3u");
var file = await filepicker.PickSingleFileAsync();

if (file != null)
{
    var playlist = await Playlist.LoadAsync(file); 
    var allMediaFiles = playlist.Files;
}

在 WinRT 中,MediaElement不支持直接播放 WPL 播放列表。WPL 文件基本上是 XML 文件,它包含作为 WPL 播放列表一部分的所有媒体文件的路径。因此,您可以反序列化该文件并创建列表,StorageFile然后使用MediaElement. 使用MediaEndedevent 将MediaElement's设置Source为列表中的下一个媒体。

支持的音频和视频格式(Windows 应用商店应用程序)

使用 XmlDeSerializer 序列化 WinRT 应用程序中的对象

提示:要从 XML 中获取 XML 可序列化类,请通过在文本编辑器(即记事本)中打开 WPL 文件来复制 XML。在 Visual Studio 2012 中创建新的类文件。转到“编辑”菜单,然后“选择性粘贴”和“将 XML 粘贴为类”。您将获得现成的课程。

于 2013-08-23T09:51:04.237 回答