在应用程序的日常使用中,经常会使用多媒体播放器来播放多媒体文件,包括视频、音频等,因此对于开发者来说,学习多媒体播放技术对开发应用是很有帮助的。本小节主要介绍如何使用HTML5和JavaScrip实现播放本地视频。

想要在应用程序中实现多媒体播放功能,需要使用video控件,下面简单介绍下video控件的几个常用属性:

  • height 属性,用于设置播放器的高度。
  • wide 属性,用于设置播放器的宽度。
  • controls 属性,用于设置播放器的控制栏是否显示。当该属性的值为true时,表示显示控制栏;值为false时隐藏控制栏。
  • loop 属性,用来设置多媒体是否循环播放。当该属性值为true时,则会循环播放;值为false时只播放一次。
  • src 属性,用于设置多媒体文件的URL。

接下来通过一个具体的应用程序讲解与视频播放相关的知识点。首先在Visual Studio 2012中新建一个JavaScript的Windows应用商店的空白应用程序项目,将其命名为MediaApplication。然后打开default.html文件,在body元素中添加两个div元素,并在第一个div中添加一个用于播放视频的video控件,将其class属性设置为"videoStyle",id属性设置为"videoId";在第二个div中添加一个用于选取多媒体文件的"打开"按钮和一个用于显示提示信息的p元素,并将这两个元素的id属性分别设置为"pickFileButton"和"output",相关代码如下所示:

<body>

<div>

    <h2 id="title">多媒体示例</h2>

<video class="videoStyle" id="videoId" controls="true" loop="true" src=""></video>

</div>

    <div>

<button id="pickFileButton">打开</button>

    <p id="output"> </p>

</div>

</body>

为了控制界面元素的显示外观,在css文件夹里新建一个CSS样式文件,将其命名为StyleFile,并在其中添加如下代码,用于设置各元素的位置或样式。

/*设置<h2>元素的显示位置*/

#title

{

margin:0px 20px 20px 530px;

}

/*设置video控件的样式*/

.videoStyle

{

height:170px;

width:230px;

margin:0px 20px 20px 480px;

background:blue;

}

/*设置按钮的显示位置和大小*/

#pickFileButton

{

margin-left:550px;

font-size:15px;

}

/*设置p元素的显示位置*/

#output {

margin-left:500px;

}

接着在default.html文件的head元素内引用样式文件StyleFile.css,以便实现控制界面元素的显示外观,代码如下所示:

<link href="/css/StyleFile.css" rel="stylesheet" />

布局好前台界面后,下面来应用的后台逻辑功能。打开default.js文件,在文件中的"args.setPromise(WinJS.UI.processAll());"语句后添加如下代码,为"打开"按钮注册click事件处理函数,相关代码如下所示:

document.getElementById("pickFileButton").addEventListener("click", pickFile);

代码调用getElementById函数获取id为"pickFileButton"的button按钮,并使用addEventListener函数为该按钮的click事件注册事件处理函数PickFile。

接下来在"app.onactivated = function (args) {......};"语句后面定义事件处理函数PickFile,实现文件的选取和视频播放功能,相关代码如下所示:

//定义click事件处理函数

function pickFile() {

//创建FileOpenPicker类型的对象

var openPicker = new Windows.Storage.Pickers.FileOpenPicker();

//设置文件选取器的初始位置为视频库

openPicker.suggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.videosLibrary;

//文件类型筛选

openPicker.fileTypeFilter.replaceAll([".mp4", ".wmv"]);

//选取多媒体文件

openPicker.pickSingleFileAsync().then(function (file) {

if (file) {

var localVideo = document.getElementById("videoId");

//为多媒体文件创建URL,并赋值给video控件的src属性

localVideo.src = URL.createObjectURL(file, { oneTimeOnly: true });

//播放这个多媒体文件

localVideo.play();

//成功打开多媒体文件时,给出提示消息

output.innerText = "成功打开了一个多媒体文件!";

}

else{

output.innerText = "请选取一个多媒体文件!";

}

},

//如果出现异常,进行相应的异常处理

function (error) {

output.innerText = "错误:" + error.message;

});

}

上面代码中,首先新建一个FileOpenPicker类型的对象openPicker作为文件选取器,并设置openPicker对象的suggestedStartLocation属性值为videosLibrary,将文件选取器起始位置定位为本地的视频库。然后通过openPicker对象的fileTypeFilter.replaceAll函数,设置文件选取器能够选取的文件类型为".mp4"和".wmv"。接下来调用openPicker对象的pickSingleFileAsync函数来选取多媒体文件,在pickSingleFileAsync函数中,通过if语句对file进行检查,如果file不为空,说明已经选取了文件,那么调用document.getElementById函数获取id属性值为"videoId"的元素,将其赋值给localVideo变量,并调用URL.createObjectURL函数为所选取的多媒体文件创建一个URL,赋值给localVideo对象的src属性。URL.createObjectURL函数有两个参数,一个是file,一个是oneTimeOnly。其中file为所选取的多媒体文件,oneTimeOnly指为多媒体文件创建的URL是否只使用一次。最后调用localVideo对象的play函数来实现视频播放功能,并在p元素中显示提示信息"成功打开了一个多媒体文件!";如果没有选取文件,则会在p元素中显示提示信息"请选取一个多媒体文件!"。

启动调试,界面的初始状态如图19-32所示。单击"打开"按钮,会进入文件选取器界面,默认起始位置是视频库,如果想打开其他位置中的多媒体文件,可以单击"文件"旁边的下拉符号进行选择。这里选择视频库中的"自行车比赛.mp4"视频文件,该文件会加载到video控件中并播放,同时界面中会显示提示信息"成功打开了一个多媒体文件!",运行效果如图19-33所示。

图19-32 界面初始状态

图19-33 多媒体播放的效果

Win10系列:JavaScript多媒体的更多相关文章

  1. JavaScript 系列--JavaScript一些奇淫技巧的实现方法(二)数字格式化 1234567890转1,234,567,890;argruments 对象(类数组)转换成数组

    一.前言 之前写了一篇文章:JavaScript 系列--JavaScript一些奇淫技巧的实现方法(一)简短的sleep函数,获取时间戳 https://www.mwcxs.top/page/746 ...

  2. Win10系列:JavaScript访问文件和文件夹

    在实际开发中经常会遇到访问文件的情况,因此学习与文件有关的操作对程序开发很有帮助,关于文件操作的一些基本技术,在前面章节中有专门基于C#语言的详细讲解,本节主要介绍如何使用HTML5和JavaScri ...

  3. Win10系列:JavaScript综合实例2

    在项目中添加一个名为pages的文件夹,并在pages文件夹里面再添加一个名为mainPage的文件夹,接着在mainPage文件夹里添加一个"页面控制"项,命名为mainPage ...

  4. Win10系列:JavaScript综合实例1

    上面几个小节讲解了使用HTML5和JavaScript语言开发Windows 应用商店应用时会用到的一些技术,本小节将前面介绍的知识融合在一起创建一个菜谱应用程序,帮助读者更进一步地理解和掌握这些知识 ...

  5. Win10系列:JavaScript图形

    在页面中添加canvas元素会在页面上生成一个矩形的位图画布,可以使用JavaScript在画布上实时绘制图形图像.在绘制图形时,需要先调用画布的getContext函数获取与该画布相关的用于绘制图形 ...

  6. Win10系列:JavaScript动画4

    上面介绍的动画效果是通过Windows动画库创建的,这里的旋转动画是通过设置页面元素的style对象的相关属性来创建,此动画的效果是将界面元素沿着指定的方向进行旋转.下面介绍style对象的几个常用属 ...

  7. Win10系列:JavaScript动画3

    "交叉进出"动画也是Windows动画库中的动画效果."交叉进出"动画的动画效果是在应用程序界面上隐藏一个元素并同时在相同位置显示另一个元素的时候,被隐藏的元素 ...

  8. Win10系列:JavaScript动画2

    "重新定位"动画也是Windows动画库中的动画效果."重新定位"动画的动画效果是指一个或一组元素移动到新的位置时,这些元素不是突然出现在新的位置,而是从一个位 ...

  9. Win10系列:JavaScript 动画1

    在应用程序中使用动画会使应用显得更加生动,进而给用户带来良好的视觉效果.例如,当用户将某个项添加到列表时,新项不会立即出现在列表中,而是采用动画形式到达相应位置,并且列表中的其他项也采用动画形式移动到 ...

随机推荐

  1. [原][spark]帧序列的纹理UV索引,修改spark源码,改变纹理索引方式,支持常规帧序列

    spark的纹理索引方式是左下为最小值0 右上为最大值k ,遍历顺序为横向即: 3 4 5 0 1 2 而常规的纹理帧序列是这样的: 0 1 2 3 4 5 所以,为了让spark的纹理遍历顺序能按照 ...

  2. Eclipse使用之将Git项目转为Maven项目, ( 注意: 最后没有pom.xml文件的, 要转化下 )

    Eclipse使用之将Git项目转为Maven项目(全图解) 2017年08月11日 09:24:31 阅读数:427 1.打开Eclipse,File->Import 2.Git->Pr ...

  3. python 正则表达式规则收集

    python正则表达式基本元字符 .   通配符,匹配所有字符 ^abc  匹配以abc开始的字符串 abc$  匹配以abc结尾的字符串 [abc]  匹配字符集合 [A-Z0-9] 匹配字符范围 ...

  4. HTML 标记 3 —— CSS

    <style type="text/css">body { background-color: #F00;} p{ color:#0F0; } .自己定义 { colo ...

  5. LRU缓存机制

    运用你所掌握的数据结构,设计和实现一个  LRU (最近最少使用) 缓存机制.它应该支持以下操作: 获取数据 get 和 写入数据 put . 获取数据 get(key) - 如果密钥 (key) 存 ...

  6. induced pluripotent stem cell (iPSC) 诱导性多能干细胞

    参考: 诱导性多能干细胞 Induced pluripotent stem cell Induced Pluripotent Stem Cells: Problems and Advantages w ...

  7. c#万能视频播放器

    http://blog.csdn.net/yanzhibo/article/details/8972822 本人之前很多的文章中均提到了使用libvlc为播放器内核制作的播放器,也许有些朋友对此感兴趣 ...

  8. PHP中工厂模式与策略模式区别

    策略模式需要自己动手去做,工厂模式是都准备好了你需要选择 工厂模式:有一天你决定去吃披萨,一看菜单,哦,种类很多呀,你就点了个培根披萨,过了二十分钟,你的披萨就来了就可以吃到了.但这个披萨是怎么做的, ...

  9. 一‘php文件系统

    一.获取文件信息 ——FILE——,获取当前文件的绝对路径,包含文件名, __DIR__等价于dirname(__FILE__),不包含文件名的路径,

  10. 简单记录下3PC

    三PC分为三个阶段:CanCommit,PreCommit, DoCommit 整个分布式系统中,有一个组织者,其他属于参与者,当一个组织者挂了,会从其他可用site中选一个组织者出来,降低阻塞,避免 ...