日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

解析SW6.6中調用外部FLV視頻的問題_動易Cms教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

相信有很多朋友和我們一樣,用動易SW做了視頻頻道,早先的時候不管是自己上傳還是外站引用,如今由于播客的興起和flv的盛行,在原來用SW做的視頻頻道中引用外部flv已經(jīng)有了很現(xiàn)實的意義。比如我們網(wǎng)站是采用了oblog開發(fā)的Oblog Video系統(tǒng)。

 

以前一直采用動易系統(tǒng)來做視頻新聞,現(xiàn)在當然更愿意選擇具有自動編譯flv格式和隱藏原始地址功能的vlog了(早先用mms和直接上傳的方式,造成我們一個視頻文件被人在貓撲上用做簽名,幾乎吃光我們整個機柜的帶寬……)。

 

但是原來的視頻頻道也必須繼續(xù)運作下去。于是理所當然的想到了在SW中直接引用vlog的flv視頻。一個vlog的標準flash引用地址如下:

 

我們直接把這個swf格式的外部地址插入到動易的“軟件”頻道。保存沒問題,但是發(fā)現(xiàn)不能觀看�;氐胶笈_編輯,發(fā)現(xiàn)引用的一個外部地址被拆成了兩行——很不幸的問題——vlog的分隔符“$$$”正好和動易的多地址分隔符“$$$”沖突了。

 

于是直接添加外部URL不可能了。于是我們又換了個思路:在軟件簡介中添加flash,制作一個新的內容頁模板,不使用DownloadUrl。這個方案應該是沒有問題的,不過我沒有去做就否決了。因為第一、動易后臺添加軟件時地址不能為空,第二、既然用軟件頻道來做視頻,卻要以文章頻道的方式添加視頻源,這個方案很爛。

 

我采用的方式是:添加了一個自定義字段,命名為FlvUrl。添加視頻時,如果是傳統(tǒng)視頻,照老樣子操作,如果是flv格式視頻,在視頻地址處填寫“vlog”即可。然后把上面的那段URL填寫到自定義選項的“FlvUrl”里面。

 

可以考慮在ShowDownload.asp里直接讀取和使用這個字段,但是這樣會破壞系統(tǒng)的通用性。我的做法是在內容頁模板里改,原來我們在內容頁里用一個Iframe引用ShowDownload.asp來實現(xiàn)嵌入式播放,代碼為:

 

以下內容為程序代碼:


<IFRAME name="Video" frameBorder=0 scrolling=no src="{$InstallDir}{$ChannelDir}/ShowSoftDown.asp?SoftID={$SoftID}&UrlID=0" width="456" height="410"></IFRAME>

 

在ShowSoftDown.asp里原來就有根據(jù)后綴判斷調用下載地址和實時播放的代碼。我們增加了一個判斷,如果DownloadUrl里含有“vlog”字樣,則采用嵌入flash的方式來調用真實地址。實現(xiàn)在線播放。但是我們需要自定義字段的值。在動易系統(tǒng)里,我們添加的“FlvUrl”字段有一個模板標簽——{$MY_FlvUrl}。

所以我在內容頁模板里修改如下:

 

 

以下內容為程序代碼:

<IFRAME name="Video" frameBorder=0 scrolling=no src="{$InstallDir}{$ChannelDir}/ShowSoftDown.asp?SoftID={$SoftID}&UrlID=0&flashUrl={$MY_FlvUrl}" width="456" height="410"></IFRAME>

 

然后在ShowDownload.asp中用Request.QueryString("flashUrl")來獲取。

 

搞開發(fā)的朋友肯定已經(jīng)意識到了將要出現(xiàn)的問題,我們的參數(shù)值里含有“&”符號,于是最前面我給出的那個flash地址在傳遞和獲取之后,只剩下了第一個&符號前面的部分。

 

沒辦法,這個問題只能繼續(xù)下去,打開include/PowerEasy.Soft.asp文件,找到GetHtml_Soft()這個函數(shù),這是用來根據(jù)內容頁模板生成內容頁的代碼。我的目的是在輸出FlvUrl這個自定義字段值的時候,把&處理一下。

 

原來的代碼:

 

 

以下內容為程序代碼:

Do While Not rsField.EOF
strHtml = PE_Replace(strHtml, rsField("LabelName"), PE_HTMLEncode(vtempStr))
rsField.MoveNext
Loop

 

 

修改后的代碼:

 

 

以下內容為程序代碼:

Do While Not rsField.EOF
Dim vtempStr
vtempStr = rsSoft(Trim(rsField("FieldName")))
If Instr(vtempStr, "FlvUrl") > 0 Then vtempStr = Replace
(vtempStr, "&", "$thand$")
strHtml = PE_Replace(strHtml, rsField("LabelName"), PE_HTMLEncode(vtempStr))
rsField.MoveNext
Loop

 

 

這樣我們的Request.QueryString("flashUrl")就可以得到完整的flash地址了,我們在使用它之前再把“$thand$”替換成“&”,放到flash嵌入代碼的"Movie"參數(shù)值里。

 

測試結果:效果很好,內嵌的flash播放器就是vlog提供的具有全屏、隨意拖動、隨意變換電影風格、可控制進度、可暫停、可調音量的flash播放器。視頻源地址依然是隱藏(對大多數(shù)訪問者而言)。

 

附1:還有另外一個問題——視頻縮略圖如果添加外部地址,還是會在前面被加上主站縮略圖上傳路徑的URL。添加外部URL地址如果不是以http開頭的,也一樣會被加上。而縮略圖地址即使以http開頭,仍然會被加上。建議這里加一個判斷,如果以“http://”打頭的,就不要再引用完整的上傳路徑了。

 

附2:如果你是自己管理,那么有更簡單的方式,添加視頻地址的時候把“$$$”改成“$$”,在ShowDownload.asp里再把它替換回去就行了。我是為了讓編輯的添加工作簡化,所以才把復雜的事情交給程序員來做。

 
http://vlog.taihainet.com/FLVPlayerMain.swf?unicode=1&playindex=0&c=0$$$761d50d7cfea242f&s=http://vlog.taihainet.com/
 

查看更多 動易Cms教程  動易Cms模板

來源:模板無憂//所屬分類:動易Cms教程/更新時間:2009-09-09
相關動易Cms教程