jQuery多媒体插件jQuery Media Plugin使用详解
jquery media plugin是一款基于jquery的网页媒体播放器插件,它支持大部分的网络多媒体播放器和多媒体格式,比如:flash, windows media player, real player, quicktime, mp3,silverlight, pdf。它根据当前的脚本配置,自动将a标签替换成p,并生成object, embed甚至是iframe代码,至于生成object还是embed,jquery media会根据当前平台自动判别,因此兼容性方面非常出色。下面这段代码是jquery media生成后的结果:
代码如下:
<p class="media">
<object width="450" height="250" attr1="attrvalue1" attr2="attrvalue2"
codebase="https://www.apple.com/qtactivex/qtplugin.cab"
classid="clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b">
<param name="src" value="mybettermovie.mov">
<param name="autoplay" value="true">
<param name="param1" value="paramvalue1">
<param name="param2" value="paramvalue2">
<embed width="450" height="250" src="mybettermovie.mov" autoplay="true"
attr1="attrvalue1" attr2="attrvalue2" param1="paramvalue1" param2="paramvalue2"
pluginspage="https://www.apple.com/quicktime/download/" > </embed>
</object>
</p>
具体使用方法
html标记代码
代码如下:
<a class="media" href="sample.mov">my quicktime movie</a>
<a class="media" href="sample.swf">my flash movie</a>
<a class="media" href="sample.wma">my audio file</a>
初始化脚本:
代码如下:
$('.media').media();
选项
可以通过脚本对象或者jquery metadata plugin来配置参数。
全局默认值:
代码如下:
$.fn.media.defaults = {
prefermeta: 1, // 如果为true, 则标记的meta值优先于脚本对象
autoplay: 0, // 标准化的跨播放器设置
bgcolor: '#ffffff', // 背景颜色
params: {}, // 作为param元素添加到object标记中;作为属性添加到embed标记中
attrs: {}, // 作为属性添加到object以及embed中
flashvars: {}, // 作为flashvars参数或属性添加到flash中
flashversion: '7', // 需要的最低flash版本
// 默认的flash视频和mp3播放器 // @see: https://jeroenwijering.com/?item=flash_media_player
flvplayer: 'mediaplayer.swf',
mp3player: 'mediaplayer.swf',
// silverlight选项 // @see https://msdn2.microsoft.com/en-us/library/bb412401.x
silverlight: {
inplaceinstallprompt: 'true', // 在适当的位置显示安装提示
iswindowless: 'true', // 无窗口模式
framerate: '24', // 最大帧速率
version: '0.9', // silverlight版本 onerror: null, // onerror回调函数
onload: null, // onload回调函数
initparams: null, // 对象初始化参数
usercontext: null // 传到load回调函数的参数
}
};
我们也可以在执行初始化脚本的时候传入一些option参数进去,如下代码:
代码如下:
$('.media').media( { width: 400, height: 300, autoplay: true } );
再如代码:
代码如下:
$('.media').media({
width: 450,
height: 250,
autoplay: true,
src: 'mybettermovie.mov',
attrs: { attr1: 'attrvalue1', attr2: 'attrvalue2' }, // object/embed attrs
params: { param1: 'paramvalue1', param2: 'paramvalue2' }, // object params/embed attrs
caption: false // supress caption text
});
'src'选项
src选项指定了媒体文件的地址。它没有全局的默认值。如果未显示指定src选项的值,jquery media plugin将使用href或者src属性的值来代替。
播放器和格式
jquery media plugin默认为播放器和格式如下表所示:
播放器 |
文件格式 |
quicktime |
aif,aiff,aac,au,bmp,gsm,mov,mid, midi,mpg,mpeg,mp4,m4a,psd,qt,qtif, qif,qti,snd,tif,tiff,wav,3g2,3pg |
flash |
flv, mp3, swf |
windows media player |
asx, asf, avi, wma, wmv |
real player |
ra, ram, rm, rpm, rv, smi, smil |
silverlight |
xaml |
iframe |
html, pdf |
上表说明了,mp3格式被自动对应到了flash播放器。全局配置中的$.fn.media.defaults.mp3player指定mp3媒体由 mediaplayer.swf文件播放。该swf文件是一个小型的mp3和flash视频播放器,可以从这里下载:https://www.longtailvideo.com/players/jw-flv-player/
swfobject
这个脚本很常见,用来将flash内容嵌入到网页中,你不用考虑不同平台的flash嵌入方式。但这个文件并非必需。如果它加载了,jquery media plugin将使用它,反之jquery media plugin将按自己的默认方式生成object/embed标记。更多信息可以参考:https://code.google.com/p/swfobject/
iframe player
默认情况下,pdf和html格式被映射到了iframe。它们将显示在iframe中而非object/embed标记中。
添加或者修改格式关联
这个操作可以由插件的mapformat方法实现,如
$.fn.media.mapformat('mp3','quicktime');
可用的播放器有:uicktime, flash, realplayer, winmedia, silverlight和iframe,确保播放器能够播放关联到它的文件格式。
下载
直接下载jquery.media.js文件,或者在github上下载历史版本
注意:
此插件会把<a>转化为<p> 从而嵌套多媒体内容。此插件像其它的jquery插件一样 简单易用。