html檔案中flash視訊格式(flv、swf)檔案的嵌入方法
阿新 • • 發佈:2018-12-31
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檔案不在同一個檔案目錄下面的時候,需要帶上檔案路徑(這個在專案中要特別注意)。
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檔案不在同一個檔案目錄下面的時候,需要帶上檔案路徑(這個在專案中要特別注意)。