这次是要做一个简单的播放器,简单到只需有播放,暂停,停止和打开文件(仅含.mp3和.mp4)即可。而看到要求时我的第一反应便是XAML控件中的MediaPlayerElement和MediaElement。而因为前者是比较新的控件,而且介绍是轻量级,所以我在一开始选择的是MediaPlayerElement。
原本我想用button通过click事件来关联MediaPlayerElement中的播放暂停等事件,但在听老师讲了NavigationView之后,我就在考虑是否可以将SelectionChanged关联到MediaPlayerElement上来完成各种功能,于是有了如下界面
整个过程中,我主要遇到了两个问题:
1.播放,暂停,停止
在我将SelectionChanged关联到播放器上时,我发现在文档中找不到MediaPlayerElement的播放函数,暂停函数和停止函数,这就导致我无法通过其他控件的触发事件来控制播放器。而在查询文档的时候,我发现MediaElement却很明显的写出了它的三个函数
你可以在这里找到答案https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.mediaelement
因为以上原因,我将MediaPlayerElement换为了MediaElement
2.选取文件
在刚刚编写到这个功能时,我有点无从下手的感觉。然而万事不决看文档,我成功的在文档中找到了FileOpenPicker这个函数。我将文档中的代码copy过来之后,对文件类型进行了修改,然后放在程序中运行,结果在FileOpenPicker和StorageFile处报出了两个错误。在一开始我并没有用VS的自动改正来做,而是自己去网上查找问题原因,结果一下子卡了近两个小时。到最后,我才发现这个令我哭笑不得的原因,竟然是因为缺少using。而在VS自动帮我加入缺少的using后,程序便运行成功了,下图是我的代码
文档地址:https://docs.microsoft.com/en-us/uwp/api/Windows.Storage.Pickers.FileOpenPicker#code-snippet-1
完成后效果:
这次作业难度比之前要高一些,综合性也更强,但也让我明白了文档的好处。
Github:https://github.com/wangzhexiwen/App13