首页 > 代码库 > html中嵌入flv视频播

html中嵌入flv视频播

1,FLV简介

FLV 是FLASH VIDEO的简称,FLV流媒体格式是随着Flash MX的推出发展而来的视频格式。由于它形成的文件极小、加载速度极快,使得网络观看视频文件成为可能,它的出现有效地解决了视频文件导入Flash后,使导出的SWF文件体积庞大,不能在网络上很好的使用等缺点。

FLV 是一种全新的流媒体视频格式,它利用了网页上广泛使用的Flash Player 平台,将视频整合到Flash动画中。也就是说,网站的访问者只要能看Flash动画,自然也能看FLV格式视频,而无需再额外安装其它视频插件,FLV视频的使用给视频传播带来了极大便利。

我的理解是,安装了flash插件的浏览器可以实现对于swf文件的无障碍播放,但是一般swf文件很大,在网络传输环境中有很大的弊端。而FLV在网页中播放的原理是利用swf文件搭建一个壳子,然后用这个壳子来播放压缩的很小的FLV文件。

2,FLV播放器

我这次在项目中使用的是 vcastr3.

Vcastr3.0是一款开源的flv在线网页播放器插件,里面很多东西都可以自己定义。本文主要用于记录下从无到有的新手使用过程,之后有深入的了解可以再补充。

1)下载vcastr3.swf,从下面的压缩包里找。

http://vcastr.googlecode.com/svn/trunk/vcastr3/beta/example/example.zip

2)在网页中加入object 和 embed,embed的src写播放器的地址。

var videoWrapper = $(‘#videoWrapperId‘);var videoHtml = ‘<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.maBarTransparent=100&cromedia.com/pub/shock          wave/cabs/flash/swflash.cab#version=6,0,29,0" height="269" width="480">‘+                                                 ‘<embed src="http://www.mamicode.com/cdn/video/vcastr3.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="480" height="270" style="margin-top:29px;">‘+                         ‘</embed>‘+                     ‘</object>‘;videoWrapper.html(videoHtml);

 

3)在网页所在的路径下建立vcastr.xml文件,用于配置播放器。

<vcastr>        <channel>                <item>                        <source>http://vcastr.ruochi.com/video/happy_feet.flv</source>                        <duration></duration>                        <title></title>                </item>                <item>                        <source>http://vcastr.ruochi.com/video/happy_feet.flv</source>                        <duration></duration>                        <title></title>                </item>                <item>                        <source>http://vcastr.ruochi.com/video/happy_feet.flv</source>                        <duration></duration>                        <title></title>                </item>        </channel>        <config>                <buffertime>4</buffertime>                <contralpanelalpha>0.75</contralpanelalpha>                <controlpanelbgcolor>0xff6600</controlpanelbgcolor>                <controlpanelbtncolor>0xffffff</controlpanelbtncolor>                <contralpanelbtnglowcolro>0xffff00</contralpanelbtnglowcolro>                <controlpanelmode>float</controlpanelmode>                <defautvolume>0.8</defautvolume>                <isautoplay>true</isautoplay>                <isloadbegin>true</isloadbegin>                <isshowabout>true</isshowabout>                <scalemode>showAll</scalemode>        </config>        <plugins>                <logoplugin>                        <url>LogoPlugIn.swf</url>                        <logotext>Ruochi.com</logotext>                        <logotextalpha>0.75</logotextalpha>                        <logotextfontsize>24</logotextfontsize>                                         <logotextcolor>0xffffff</logotextcolor>                        <textmargin>10 auto auto 10</textmargin>                        <logoclipurl>http://www.ruochigroup.com/images/logo.png</logoclipurl>                        <logoclipalpha>1</logoclipalpha>                        <clipmargin>10 10 auto auto</clipmargin>                </logoplugin>                <beginendimageplugin>                        <url>beginEndImagePlugIn.swf</url>                        <source>beginSwfTest.swf</source>                        <type>begin</type>                        <scaletype>exactFit</scaletype>                </beginendimageplugin>                <javascriptplugin>                        <url>javaScriptPlugIn.swf</url>                </javascriptplugin>        </plugins></vcastr>

以下用”.”描述xml树结构并说明参数作用

影片信息

channel.item

影片信息,可以设置多个影片

channel.itme.source

flv影片地址参数,此参数是唯一必须要有的参数,其他参数都可以不要,播放器有默认参数

channel.itme.duration

对应影片的总时间, 单位是秒,由于有些影片在制作过程中时间信息丢失,可以通过这里来设置

channel.itme.tilte

对应影片的标题

channel.itme.link

对应影片点击后的链接

播放器设置

config.bufferTime

在缓存区影片的时间,单位是秒

config.contralPanelAlpha

控制栏的透明度,在 0 — 1 之间

config.controlPanelBgColor

控制栏背景的颜色

config.controlPanelBtnColor

控制按钮的颜色

config.contralPanelBtnGlowColro

控制按钮光晕的颜色

config.defautVolume

默认的声音大小,最大为1,最小为0

config.controlPanelMode

控制栏的显示模式,
“float”: 默认的浮动模式,鼠标移除播放器就会隐藏掉
“normal”: 正常模式,任何时候都在影片的下部浮动显示
“bottom”: 下部模式,不浮动在影片之上,而是显示在影片下方
“none”: 不显示播放器控制栏

config.isAutoPlay

是否影片自动开始播放,默认是true

config.isLoadBegin

是否一开始就读取影片,默认是true

config.isRepeat

是否循环播放影片,默然是false

config.isShowAbout

是否显示关于信息

config.scaleMode

影片放缩模式:
“showAll”: 可以看到全部影片,保持比例,可能上下或者左右
“exactFit”: 放缩影片到播放器的尺寸,可能比例失调
“noScale”: 影片的原始尺寸,无放缩
“noBorder”: 影片充满播放器,保持比例,可能会被裁剪

插件设置

plugIns 中每一个子节点代表一个插件,可以设置多个插件

plugIns.logoPlugIn,显示logo插件的参数设置

 

plugIns.logoPlugIn.url

插件的地址,可以使用绝对地址,也可以使用相对地址,绝对地址需要http://开始

plugIns.logoPlugIn.logoText

logo文字,注意之可以使用英文和英文标点,不支持中文,如果想放中文,就把中文做成文字png透明图片,用plugIns.logoPlugIn.logoClipUrl参数设置

plugIns.logoPlugIn.logoTextAlpha

文字的透明度

plugIns.logoPlugIn.logoTextLink

文字的连接

plugIns.logoPlugIn.logoTextFontSize

文字字体的大小

plugIns.logoPlugIn.logoTextColor

文字的颜色

plugIns.logoPlugIn.textMargin

文字的位置,用了css的margin概念,四个数值代表 上 右 下 左 相对于播放器的距离,四个数值用空格分开,不需具体数值用”auto”填写 ,比如左上对齐并都有10像素的距离可以写 “10 auto auto 10″, 右下角对齐是”auto 10 10 auto”

plugIns.logoPlugIn.logoClipUrl

图片logo的url,可以使用绝对地址,也可以使用相对地址,绝对地址需要http://开始

plugIns.logoPlugIn.logoClipAlpha

图片logo的透明度

plugIns.logoPlugIn.logoClipLink

图片logo的连接

plugIns.logoPlugIn.clipMargin

图片logo的位置,用了css的margin概念,四个数值代表 上 右 下 左 相对于播放器的距离,四个数值用空格分开,不需具体数值用”auto”填写 ,比如左上对齐并都有10像素的距离可以写 “10 auto auto 10″, 右下角对齐是”auto 10 10 auto”

plugIns.javaScriptPlugIn,javaScript控制插件的参数设置

plugIns.javaScriptPlugIn.url

插件的地址,可以使用绝对地址,也可以使用相对地址,绝对地址需要http://开始

javaScript插件

使用方法参看实例页面
http://vcastr.ruochi.com/v3/vcastr_javaScript_example.html

javaScript可以控制播放器 播放,暂停,停止,快进,快退,下一个,上一个,音量控制,影片跳转到需要的时间
在javaScript可以获得播放器的事件,有四个参数回来,分别是type:事件种类,state:当前状态, phayHeadTime:当前播放时间,loadPersent:下载百分比

事件 type有
stateChange,播放状态变化,播放或者暂停
complete,播放完毕
init,播放器初始化完毕
ready,影片下载了一部分,已经可以开始播放
playheadUpdate,每一秒即发一次
startBuffering,开始缓冲
stopBuffering,缓冲结束

状态 state
playing,播放中
paused,暂停中

beginEndImagePlugIn 影片开始和结尾需要加载外部资源(可以是图片或者swf)的插件

beginEndImagePlugIn.logoPlugIn.url

插件的地址,可以使用相对或者绝对地址,绝对地址需要http://开始

beginEndImagePlugIn.logoPlugIn.source

开始的图片或者swf的地址

beginEndImagePlugIn.logoPlugIn.type

显示方式,有3种显示方法,begin:在开始的显示,end:结尾部分显示,beginEnd:在开始和结尾部分同时显示

beginEndImagePlugIn.logoPlugIn.scaleType

“showAll”: 可以看到全部影片,保持比例,可能上下或者左右
“exactFit”: 放缩影片到播放器的尺寸,可能比例失调
“noScale”: 影片的原始尺寸,无放缩
“noBorder”: 影片充满播放器,保持比例,可能会被裁剪

html中嵌入flv视频播