flash文件的格式:.FLV和.SWF
flash视频格式有两种扩展名可以使用:.flv和.swf。他们有什么不同呢?
(1)一个.flv文件(flash视频)是基于图片的视频流和音频。如果你在运行一个流服务,flv将是一个好的选择。上游条件是,这个文件的任何部分可以被客户终端访问,并且任何时间不会等待下载。话又说回来了,运行一个流服务待价昂贵。
(2).swf也是MacromediaFlash文件格式,是一个完整的视频-音频文件,并具有脚本和其它更多的。这将有利于HTTP(渐进式)下载,也被叫做“伪随机流(psuedostreaming)”。当文件的一部分下载后,视频片段就立刻播放,但是客户端将等待flash文件片段下载后才能访问(不能快进),除非整个文件完整下载。这也是我们常常谈到的,他是一个简单的,不昂贵的,简便的方式流话你的视频媒介。SWF不是官方简称,已经有人声称它是“ShockWaveFlash”或者"SmallWebFormat".的简称。
在页面中嵌入flash可以使用如下方式:
<objectclassid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,16,0"width="320"height="400"><paramname="movie"value="video-filename.swf"><paramname="quality"value="high"><paramname="play"value="true"><paramname="LOOP"value="false"><embedsrc="video-filename.swf"width="320"height="400"play="true"loop="false"quality="high"pluginspage="http://www.macromedia.com/go/getflashplayer"type="application/x-shockwave-flash"></embed></object>
这里要注意的是:
<paramname="movie"value="video-filename.swf">
<embedsrc="video-filename.swf"..
这两个地方,都是swf文件的位置名称,其他一些参数可以参考以上链接里的介绍。
但是这样写了之后,虽然页面中swf格式的文件可以显示,但是flv格式的文件播放不了。纠结了一阵子,从dreamweaver中总结了一个解决方案:
<scripttype="text/javascript">
functionMM_CheckFlashVersion(reqVerStr,msg){
with(navigator){
varisIE=(appVersion.indexOf("MSIE")!=-1&&userAgent.indexOf("Opera")==-1);
varisWin=(appVersion.toLowerCase().indexOf("win")!=-1);
if(!isIE||!isWin){
varflashVer=-1;
if(plugins&&plugins.length>0){
vardesc=plugins["ShockwaveFlash"]?plugins["ShockwaveFlash"].description:"";
desc=plugins["ShockwaveFlash2.0"]?plugins["ShockwaveFlash2.0"].description:desc;
if(desc=="")flashVer=-1;
else{
vardescArr=desc.split("");
vartempArrMajor=descArr[2].split(".");
varverMajor=tempArrMajor[0];
vartempArrMinor=(descArr[3]!="")?descArr[3].split("r"):descArr[4].split("r");
varverMinor=(tempArrMinor[1]>0)?tempArrMinor[1]:0;
flashVer=parseFloat(verMajor+"."+verMinor);
}
}
//WebTVhasFlashPlayer4orlower--toolowforvideo
elseif(userAgent.toLowerCase().indexOf("webtv")!=-1)flashVer=4.0;
varverArr=reqVerStr.split(",");
varreqVer=parseFloat(verArr[0]+"."+verArr[2]);
if(flashVer<reqVer){
if(confirm(msg))
window.location="http://www.macromedia.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash";
}
}
}
}
</script>
</head>
<bodyonload="MM_CheckFlashVersion('7,0,0,0','本页内容需要使用较新的MacromediaFlashPlayer版本。是否现在下载它?');">
<objectclassid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0"width="314"height="234"id="FLVPlayer">
<paramname="movie"value="FLVPlayer_Progressive.swf"/>
<paramname="salign"value="lt"/>
<paramname="quality"value="high"/>
<paramname="scale"value="noscale"/>
<paramname="FlashVars"value="&MM_ComponentVersion=1&skinName=Clear_Skin_3&streamName=%E8%80%81%E5%A4%A9%E4%B8%8B%E8%B4%B0%E4%B9%8B%E8%8E%AB%E9%97%AE%E4%BB%8A%E6%9C%9D&autoPlay=true&autoRewind=true"/>
<embedsrc="FLVPlayer_Progressive.swf"flashvars="&MM_ComponentVersion=1&skinName=Clear_Skin_3&streamName=%E8%80%81%E5%A4%A9%E4%B8%8B%E8%B4%B0%E4%B9%8B%E8%8E%AB%E9%97%AE%E4%BB%8A%E6%9C%9D&autoPlay=true&autoRewind=true"quality="high"scale="noscale"width="314"height="234"name="FLVPlayer"salign="LT"type="application/x-shockwave-flash"pluginspage="http://www.macromedia.com/go/getflashplayer"/>
</object>
这里多了一个版本控制的方法MM_CheckFlashVersion()。
下部分和swf的写法很相似,但是还略有不同。<paramname="movie"value="FLVPlayer_Progressive.swf"这里不再是播放文件了,而是相当于一个播放器性质的文件,而且使用dreamweaver插入一个flash文件后,你会发现FLVPlayer_Progressive.swf这个文件和Clear_Skin_3.swf。前者相当于播放器,后者相当于皮肤,dreamweaver里面提供了多种皮肤,可以根据选择使用。在以上代码中有两处使用到了播放器文件FLVPlayer_Progressive.swf,这个和swf的很相似,但是他不是源文件。代码中skinName就是设置皮肤的,其他的一些属性都比较好理解。
总结一下,flv格式嵌入有3个要点:1,播放器FLVPlayer_Progressive.swf,这个文件必不可少,而且这个文件要和flv源文件在一个文件目录下(暂时也没有找到原因)2.皮肤skinName=Clear_Skin_3,皮肤可以更换,同样也是必不可少的,要和flv源文件在一起。3.源文件,streamName,这个参数显示源文件的文件名,不带后缀,当文件名为中文的时候,dreamweaver会知道把那个名称转换为一大串。。。。当html文件和flv文件不在同一个文件目录下面的时候,需要带上文件路径(这个在项目中要特别注意)。
本文转载自中文网 |