這次是要做一個簡單的播放器,簡單到只需有播放,暫停,停止和打開文件(僅含.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
浙公網安備 33010602011771號