flash视频格式有两种扩展名可以使用:.flv和.swf,以下在html页面中嵌入flash的方法。
flash文件的格式:.flv 和 .swf
flash视频格式有两种扩展名可以使用:.flv和.swf。
有什么不同呢?
1,一个.flv文件(flash视频)是基于图片的视频流和音频。如果你在运行一个流服务,flv将是一个好的选择。上游条件是,这个文件的任何部分可以被客户终端访问,并且任何时间不会等待下载。话又说回来了,运行一个流服务待价昂贵。
2,.swf也是macromedia flash文件格式,是一个完整的视频-音频文件,并具有脚本和其它更多的。这将有利于http(渐进式)下载,也被叫做“伪随机流(psuedo streaming)”。当文件的一部分下载后,视频片段就立刻播放,但是客户端将等待flash文件片段下载后才能访问(不能快进),除非整个文件完整下载。
swf不是官方简称,已经有人声称它是“shockwave flash”或者"small web format".的简称。
在页面中嵌入flash:
复制代码 代码示例:
<object classid="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" >
<param name="movie" value="video-filename.swf">
<param name="quality" value="high">
<param name="play" value="true">
<param name="loop" value="false">
<embed src="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>
注意: <param name="movie" value="video-filename.swf">和<embed src="video-filename.swf"..... 这两个地方,都是swf文件的位置名称,其他一些参数可以参考以上链接里的介绍。
这样,虽然页面中swf格式的文件可以显示,但是flv格式的文件播放不了。
从dreamweaver中总结了一个解决方案:
复制代码 代码示例:
<script type="text/
javascript">
function mm_checkflashversion(reqverstr,msg){
with(navigator){
var isie = (appversion.indexof("msie") != -1 && useragent.indexof("opera") == -1);
var iswin = (appversion.tolowercase().indexof("win") != -1);
if (!isie || !iswin){
var flashver = -1;
if (plugins && plugins.length > 0){
var desc = plugins["shockwave flash"] ? plugins["shockwave flash"].description : "";
desc = plugins["shockwave flash 2.0"] ? plugins["shockwave flash 2.0"].description : desc;
if (desc == "") flashver = -1;
else{
var descarr = desc.split(" ");
var temparrmajor = descarr[2].split(".");
var vermajor = temparrmajor[0];
var temparrminor = (descarr[3] != "") ? descarr[3].split("r") : descarr[4].split("r");
var verminor = (temparrminor[1] > 0) ? temparrminor[1] : 0;
flashver = parsefloat(vermajor + "." + verminor);
}
}
// webtv has flash player 4 or lower -- too low for video
else if (useragent.tolowercase().indexof("webtv") != -1) flashver = 4.0;
var verarr = reqverstr.split(",");
var reqver = 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>
<body onload="mm_checkflashversion('7,0,0,0','本页内容需要使用较新的 macromedia flash player 版本。是否现在下载它?');">
<object classid="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">
<param name="movie" value="flvplayer_progressive.swf" />
<param name="salign" value="lt" />
<param name="quality" value="high" />
<param name="scale" value="noscale" />
<param name="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" />
<embed src="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的写法很相似,但是还略有不同。<param name="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文件不在同一个文件目录下面的时候,需要带上文件路径(这个在项目中要特别注意)。
如下图:
图示中同一个页面使用了两种皮肤,一个设为自动播放,另一个为手动播放。文件格式为flv。