前面说的那么多控件都是“静态”的,都是“哑吧”的,今天,你有没有兴趣研究一下,既能“有声有色”又操作简单的控件吗?如果有,请随我来。
MediaElement播放多媒体文件。
首先,隆重介绍一下MediaElement,为什么要隆重呢?因为它简单,真的,你一定会玩的,但是,MediaElement功能强大,它可以播放音频和视频,只要支持的格式就行了。
要设置播放的音频或视频文件,你只需要设置Source属性即可,它其实就是一个URI,如果要播放你项目中的媒体文件,你先要把媒体文件添加到你的项目中,把它的生成操作设置为资源,不用我说了,都会了吧。
你一定会问,能播放网络的URI指向的媒体文件吗?呵,你试一试就知道了。
闲话不扯了,开始做练习,首先自备一个3gp或MP4文件,你自己随便找一个,当然,其它格式也可以,呵呵,只要支持就行了,因为我们在模拟器中观看效果,所以最后用一些常用的格式,模拟器不是所有的媒体文件都能支持,具体请参考SDK文档相关说明。
MediaElement是非常易用的,我简单说说它的一些常用的属性,相信你自己研究两下就懂的。
1、Source:刚才说了,就是你要播放的媒体文件;
2、AutoPlay:是否自动播放,呵,这个估计你比我更懂了;
3、Balance:立体声左右声道的音量比,就是一个平衡值,从-1到1,0在中间,所以是默认值;
4、Stretch:与Image控件一样,如何拉伸,或者保持纵横比;
5、Volume:音量,0-1范围内,默认0.5.
好的,下面看看第一个练习的布局。
说明一下,每个按钮上的图形是我手画上去的,Content属性设置为Path对象就可以绘制和填充路径,为了简明,我使用了路径标记法,不用急,我后面的文章会介绍。
继续把后台的代码写完,更简单了,就几个方法的调用。
把MediaElement和VideoBrush结合使用。
这是我们的第二个练习,VideoBrush也是一种画刷,但它很特殊,它不用单色,不用渐变颜色,它用视频来充填对象的表面,如元素的背景画刷,前景画刷等。
VideoBrush只要把SourceName的属性值设置为MediaElement的名字即可,也就是说,VideoBrush的源是来自MediaElement对象,你既可以两个同时使用,当然,如果你只希望用VideoBrush,那就把MediaElement的Visibility属性设置为Collapsed。
有一点要说明,尽管在你的页面中同时用到了MediaElement和VideoBrush,但是,在其内部,其实只读取一次数据,所以,引用多少个媒体文件只取决于MediaElement类,无论你在页面使用多少个VideoBrush,对性能是没有任何影响的,前面我们说过资源,相信大家还记得,资源就是提高可重用率,不必要每次都要创建资源,不然会大大有损性能,项目中的文件,上面说了,你只要把的生成操作设为资源,它就可以重复使用,而不会说我每增加一个引用就分配一个新实例,这不需要,资源实例只需创建一次即可,可以供多处重复引用。
如果不使用资源,你想象一下是多么恐怖的事,假如一段MP3有2000个字节,如果你每用到它都要在内存中new一个,如果我同时使用100个这个对象,就是100 * 2000 = 200000字节,这样内存都被你耗尽了,然而如果是资源呢?只要它被创建,一直就是同一个引用,内存只为它分配2000个字节,无论你同时有1000个地方在引用它,指向的都是同一块内存区域,哈,不知道这样解释,够不够通俗易懂呢?
OK,就吹到这儿,下面我们再练一例,在TextBlock上显示Hello,但我希望这个TextBlock的前景不是使用颜色来填充,而是用视频来填充,这样一来,这段文字看起来就有声有色了,是啊,你有没有想起Flash里面的滤罩层?但现在你可以通过VideoBrush类轻松地实现。
还记得前两节课说过的变换和三维透视吗?你不妨自己试试,知识就是通过“滚雪球”方式一点一点累积起来,所以,我强烈建议你去改一下上面的代码,把上两节的内容和本节的内容结合,看看能不能做出很美观的特效出来。
分享到:
相关推荐
@import " bower_components/mediaelement-skin/mediaelement-skin " ;设置在 SASS 构建中添加地图以覆盖任何默认设置 $mejs-settings : ( background : #333 , total-color : #444 , current-color : #AAA , ...
FFME:高级WPF MediaElement替代 :white_medium_star: 如果喜欢,请给该项目星标,并通过表示感谢 当前的NuGet发行状态 如果您想支持这个项目,可以通过表示感谢。 当前状态:(2020-11-27)-版本4.3.340现在可用...
音频元素.js 在 mediaElement.js 之上创建的具有高级功能的全宽响应式音频播放器文件要使用 Audio Element Js,请在您的标签中包含以下内容[removed][removed] [removed][removed] 然后初始化audioElement js ...
媒体元素利用 mediaelement.js 播放器的小型 Bolt 扩展
此更改适用于MediaElement和MediaElement Plugins存储库。 安装 从下载该软件包,并从dist文件夹中引用您需要的任何插件,并添加与该插件相关的任何配置。 或者您可以使用CDN; 检查 。 例如,如果要安装Speed...
//Moodle HTML5 Embed Filter using MediaElement.js //要使用这个过滤器,你应该首先在你的Moodle中安装它,然后启用它。 //之后,您应该禁用一些默认的媒体嵌入设置 //站点管理->外观->媒体嵌入 //您需要取消选中...
wpf MediaElement 全屏播放视频.
MediaElement C#解码(h.264和aac)FLV MP4 源码,可以编译成功并且成功运行。代码结构清晰,容易移植,比如移植到windows phone上。
Windows Phone 8下MediaElement控件实时播放H264裸码流
WPF 播放器 MediaElement
MediaElement视频控件的基本用法,有开始、停止、暂停、音量、快进、快退、正常播放、和视频进度条样式 音量拖动样式,适合需要MediaElement控件播放视频的人群。
wpf mediaelement视频播放器 包含视频基本功能 视频截图 视频画线
很好的 mediaElement 示例,简单易懂,功能强大
MediaElement实例,附带DEMO和js文件,可以播放flv视频(非Flash) 将flv转为H5格式
前端项目-mediaelement-plugins,Plugins for MediaElement Player
mediaelement播放多种格式视频,包括mp4,m3u8,ogv,webm等,但代码未抽取,多种格式 不是非常方便查看。
这是一个使用WPF MediaElement来播放MP4视频的例子,包含了保存文件到安装目录、拖动播放进度,修改拖动进度条样式,调节视频音量等功能
前端项目-mediaelement,纯HTML和CSS格式的HTML5音频和视频播放器。mediaelementplayer.js对所有播放器使用相同的HTML/CSS。
silverlight MediaElement 控件读取FLV格式视频 一个是从客户端读取的,一个是从服务端读取的。
在WPF里用MediaElement控件,实现一个循环播放单一视频的程序,同时可以控制视频的播放、暂停、停止。 一种方式,使用MediaElement.MediaEnded事件,在视频播放结束后,自动重新播放; 另一种方式,使用WPF...