一、整体效果
上图是我所做的播放器的效果,比较简单也没有什么特殊的功能。整个播放器大部分都是MediaElement实现的,我自己又添加了选取文件和停止的功能。如图加号是选取一个本地的文件,方块是停止当前播放的文件并重头开始。实现了要求的基本功能:选取一个MP3,MP4文件,实现播放暂停等功能。下面是我作业的链接:
https://github.com/ilike123/player
二、设计过程
在刚开始做的时候并没有什么头绪,也不知道该用什么实现,首先想到的是用一些button去实现开始暂停等功能,用slide去实现对音量的控制。但是做了一半之后发现这么做超级麻烦,尤其是对音量的控制。于是就想用其他的控件去实现,然后就看到了MediaElement。这是一个非常强大的控件,基本上大部分功能都是由它来实现的。有了一个基本的播放的框架就需要补充其他功能了:选取文件。这基本上是两个最主要的东西了。
①MediaElement
一看到MediaElement我是一头雾水的,怎么定义,怎么实现功能都不懂。然后我就去看了微软的文档:
https://msdn.microsoft.com/zh-cn/library/windows/apps/mt187272.aspx
不得不说这是懒人福音,怎么定义怎么实现都已经全部列了出来。所以基本上我就直接用了。
说到MediaElement就不得不提到AreTransportControlsEnabled了,这是一个神奇的属性,只要设置为True,那么大半个播放器就实现了。什么播放暂停,音量控制都已经帮我实现。一开始我并没有在意这个控件,直到我看见了这篇文章:
https://www.cnblogs.com/MzwCat/p/7858067.html
我发现了同样是用了MediaElement,但是我和它的效果完全不同,然后我就明白了AreTransportControlsEnabled有多么好用。然后的然后我的整个播放器就算大功告成了。不得不说微软官方的文档和空间滋生的属性真的很不错,方便实用。
②开始暂停
其实这是一个不算问题的问题。我使用MediaElement之前想着用button去实现功能。基本所有的播放器开始和暂停都是一个按键,所以我也应该用一个按键,那么问题就来了:怎么用一个button实现两个功能。其实很简单,但是困扰了我好久。最蠢的是,我已经想到了用if判断,但我却用i=1,i=0去判断。实际效果就是每次点击button都会重新给i赋值,根本无法判断。后来问舍友才知道直接判断button里的内容就可以了。。。。
三、总结
首先就是让我知道了微软的文档有多好用,他并不是科普的东西,更像是我们初学的“字典”。还有就是控件本身,选对一个好的控件对于一个应用真的很重要,能节省大量的时间和精力。总之做完这个播放器还是受益匪浅的。
网友评论