UWP学习——媒体播放

 Github:https://github.com/Tong12138/MediaPlayer

成果  :

 

技术问题1:如何让用户选择文件

解决过程: 我首先想到了xaml控件中有dialog这一控件,查找之后发现只是一个ContentDialog控件,于是我就在网上进行“uwp文件选取”的查找,

      找到的网页:https://docs.microsoft.com/zh-cn/windows/uwp/files/quickstart-using-file-and-folder-pickers

                   在此网页中,我对FileOpenPicker选取器有了一定的了解,相关属性类似ViewMode和StartLocation也大体上知道了应该怎么使用。

                  网页中提到的代码:

var picker = new Windows.Storage.Pickers.FileOpenPicker();
picker.ViewMode = Windows.Storage.Pickers.PickerViewMode.Thumbnail;
picker.SuggestedStartLocation =
Windows.Storage.Pickers.PickerLocationId.PicturesLibrary;
picker.FileTypeFilter.Add(".jpg");
picker.FileTypeFilter.Add(".jpeg");
picker.FileTypeFilter.Add(".png");

Windows.Storage.StorageFile file = await picker.PickSingleFileAsync();

于是我写出了如下内容:

FileOpenPicker filepicker = new FileOpenPicker();
filepicker.ViewMode= Windows.Storage.Pickers.PickerViewMode.Thumbnail;
filepicker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.PicturesLibrary;
filepicker.FileTypeFilter.Add(".mp3");
filepicker.FileTypeFilter.Add(".mp4");
Windows.Storage.StorageFile file = await filepicker.PickSingleFileAsync();

技术问题2:如何获取文件路径?

解决过程:由于MediaElement需要获取到文件的路径来播放,所以我去了解了StorageFile的相关方法,但是在获取路径赋值给Source的时候出现错误,错误提示两边并不匹配,需要将string                    转化为System.uri

                  网页:https://msdn.microsoft.com/zh-cn/library/windows/apps/windows.storage.storagefile

                 

 

                  我就写了如下代码:

// Uri uri = new Uri(file.Path);
//mediaplayer.Source = uri;

                 but,不得不说小白的想法就是不够到位,文件的路径并不正确、并不能播放。于是我就重新看了一下MediaElement的文件,里面详细的给出了针对FileOpenPicker的说明,还了解到其实是用MediaPlayerElement更好,但是我编程时候的Windows最低版本还不支持这个,所以就没有进行更改。

                网址如下:https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.mediaelement

                所以我做了如下处理:

var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read);
mediaplayer.SetSource(stream, file.ContentType);

技术问题3:播放器最小化就停止播放

解决过程:我查找了很长时间的解决办法 微软的技术文档下有相关的说明:https://docs.microsoft.com/zh-cn/windows/uwp/audio-video-camera/background-audio  在更改一部分后,我发现这个是针对MediaPlayerElement                    的,如果要是使用MediaElement的话,则需要手动设置系统媒体传输控件https://docs.microsoft.com/zh-cn/windows/uwp/audio-video-camera/system-media-transport-controls

                 这个需要非常多的更改步骤,已经脱离了我们简单媒体的初衷,我就没有再继续尝试。

 

总结:这次的作业我觉得我是一个没有百度会死星人,真的是缺乏很多知识和经验,以后还是要多多进行实践。

 

转载于:https://www.cnblogs.com/whitepigeon/p/8697640.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值