Homework for UWP——Naïve Media Player, Part 1
根据作业的要求,编写一个能让用户自行选择文件形式并播放的播放器,我分解成了两部分内容,第一部分是选择文件,第二部是播放。
一、文件的选择
如何选择想要播放的文件,我首先想到是否有一个API,于是我百度了一下如何让用户自行选取文件,于是,我在Microsoft官方指南中找到了这个https://docs.microsoft.com/zh-cn/windows/uwp/files/quickstart-using-file-and-folder-pickers,其中我选用了FileOpenPicker类函数,代码如下(复制粘贴过来的,但是经过了一些改动):
private async void add_Click(object sender, RoutedEventArgs e)
{
var openPicker = new FileOpenPicker();
openPicker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.VideosLibrary;
openPicker.FileTypeFilter.Add(".mp4");
openPicker.FileTypeFilter.Add(".mp3");
StorageFile file = await openPicker.PickSingleFileAsync();
if (file != null)
{
var mediaSource = MediaSource.CreateFromStorageFile(file);
MediaPlayer.Source = mediaSource;
}
}
在这段代码中,我用到了FileOpenPicker构造函数、SuggestedStartLocation属性从windows的库中首先选择video类型的文件供用户选择,其中有一段小插曲就是系统警告缺少引用,于是我根据黄色小灯泡提示引用了一个 Windows.Storage.Pickers和一个Windows.Media.Core就解决了;其次呢,用openPicker.PickSingleFileAsync()方法打开单一文件(当然也有mutiple选择多个文件的方法),这个部分来自:↓
https://docs.microsoft.com/en-us/uwp/api/Windows.Storage.Pickers.FileOpenPicker#Windows_Storage_Pickers_FileOpenPicker_PickSingleFileAsync。
二、播放器
这个部分我直接再控件库里找到了MediaPlayerElement控件,是一个已经定义好了的播放器,只需要通过给MediaPlayerElement中的Source属性传参就可以播放了。
最后的效果是这样的
文件选择:
播放效果:
Github:https://github.com/tyuchn/homework--A-basic-player