我正在尝试在Windows 8中制作播放列表。我可以创建播放列表,但MediElement不想播放播放列表。我的问题是:如何使用C#在Windows 8中播放.wpl
文件?这是我的代码:
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;
}
}
答案 0 :(得分:1)
更新1
您可以通过Playlist
课程加载WPL,ZPL或M3U播放列表。检查下面给出的代码。
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
的媒体文件。使用MediaEnded
事件将MediaElement
的{{1}}设置为列表中的下一个媒体。
Supported audio and video formats (Windows Store apps)
Serializing Objects in your WinRT Applications using XmlDeSerializer
提示:要从XML获取XML可序列化类,请通过在文本编辑器(即记事本)中打开WPL文件来复制XML。在Visual Studio 2012中创建新的类文件。转到“编辑”菜单,然后选择“粘贴特殊”和“然后将XML粘贴为类。你将准备好上课。