制作一個(gè)全功能的FLV播放器
更新時(shí)間:2007年02月15日 00:00:00 作者:
本文選自《Flash MX Professional 2004第一步》一書(shū)
作者 陳冰
創(chuàng)建一個(gè)全功能的FLV播放器
我們將制作的這個(gè)FLV播放器由這樣幾部分組成:
一個(gè)用于顯示視頻圖像的視頻對(duì)象,
三個(gè)分別用于播放、暫停和停止視頻的按鈕,
以及一個(gè)用于顯示緩沖區(qū)裝載進(jìn)度的動(dòng)態(tài)文本。
1. 創(chuàng)建三個(gè)按鈕元件,分別命名為“播放”、“暫停”、“停止”,將其各自一個(gè)實(shí)例拖放到場(chǎng)景舞臺(tái)中。
2. 創(chuàng)建一個(gè)視頻元件,將其一個(gè)實(shí)例拖放到場(chǎng)景舞臺(tái)中,并賦予其實(shí)例名myVideo。
3. 在場(chǎng)景舞臺(tái)中放置一個(gè)動(dòng)態(tài)文本,賦予其實(shí)例名myText。
4. 在根時(shí)間線的第1幀中捆綁下面的腳本:
//創(chuàng)建一個(gè)NetConnection對(duì)象。
myFLVConnection=new NetConnection();
//創(chuàng)建一個(gè)流連接。
myFLVConnection.connect(null);
//創(chuàng)建一個(gè)NetStream對(duì)象。
//myFLVConnection被指定給該NetStream對(duì)象。
myFLVStream=new NetStream(myFLVConnection);
//myFLVStream被捆綁到Video對(duì)象myVideo:
myVideo.attachVideo(myFLVStream);
//設(shè)置緩沖時(shí)間。
myFLVStream.setBufferTime(10);
分析這段腳本,首先我創(chuàng)建了一個(gè)NetConnection對(duì)象myFLVConnection,然后我調(diào)用NetConnection對(duì)象的connect()方法打開(kāi)了一個(gè)流連接,在調(diào)用connect()方法時(shí)你必須傳遞給它一個(gè)null值作為參數(shù)。
接下來(lái),我利用myFLVStream=new NetStream(myFLVConnection);這行代碼創(chuàng)建了一個(gè)NetStream對(duì)象myFLVStream,在創(chuàng)建時(shí)我就需要把為該“流”提供的“連接”告知它,即把myFLVConnection對(duì)象作為參數(shù)傳遞給NetStream類的構(gòu)造函數(shù)。
之后,我把myFLVStream(“流”)捆綁到Video對(duì)象myVideo。然后,我還用NetStream類的setBufferTime()方法以秒為單位指定了一個(gè)緩沖時(shí)間,即要在緩沖區(qū)中裝入可供播放多長(zhǎng)時(shí)間的數(shù)據(jù)后才開(kāi)始播放。
5. 在“播放”按鈕實(shí)例上捆綁下面的腳本:
on(release){
//裝載并播放FLV文件。
myFLVStream.play("myFLV.flv");
//定義bufferLoad函數(shù)以供setInterval函數(shù)調(diào)用來(lái)顯示緩沖進(jìn)度。
function bufferLoad(){
//在動(dòng)態(tài)文本中顯示緩沖區(qū)的裝載進(jìn)度。
myText.text="緩沖區(qū)已裝載"+int((myFLVStream.bytesLoaded/myFLVStream.bytesTotal)*100)+"%";
}
//設(shè)置時(shí)間間隔。
setInterval(bufferLoad,20);
}
這行代碼—myFLVStream.play("myFLV.flv");用來(lái)裝載和播放FLV文件。如果你的FLV文件位于某個(gè)HTTP地址或本地文件系統(tǒng)的某處,你可以使用http://或file://這樣的格式作為路徑的前綴來(lái)指定FLV文件的位置。
這個(gè)表達(dá)式—myFLVStream.bytesLoaded/myFLVStream.bytesTotal用來(lái)檢查緩沖區(qū)已裝載的字節(jié)占緩沖區(qū)要裝載的總字節(jié)的比值。bytesLoaded和bytesTotal是NetStream類的兩個(gè)屬性。
6. 在“暫?!卑粹o實(shí)例上捆綁下面的腳本:
on(release){
//暫停FLV文件。
myFLVStream.pause();
}
7. 在“停止”按鈕實(shí)例上捆綁下面的腳本:
on(release){
//停止FLV文件并同時(shí)刪除下載的FLV文件。
myFLVStream.close();
}
8. 制作完成。你應(yīng)該在你的網(wǎng)站中測(cè)試這個(gè)FLV播放器。
作者 陳冰
創(chuàng)建一個(gè)全功能的FLV播放器
我們將制作的這個(gè)FLV播放器由這樣幾部分組成:
一個(gè)用于顯示視頻圖像的視頻對(duì)象,
三個(gè)分別用于播放、暫停和停止視頻的按鈕,
以及一個(gè)用于顯示緩沖區(qū)裝載進(jìn)度的動(dòng)態(tài)文本。
1. 創(chuàng)建三個(gè)按鈕元件,分別命名為“播放”、“暫停”、“停止”,將其各自一個(gè)實(shí)例拖放到場(chǎng)景舞臺(tái)中。
2. 創(chuàng)建一個(gè)視頻元件,將其一個(gè)實(shí)例拖放到場(chǎng)景舞臺(tái)中,并賦予其實(shí)例名myVideo。
3. 在場(chǎng)景舞臺(tái)中放置一個(gè)動(dòng)態(tài)文本,賦予其實(shí)例名myText。
4. 在根時(shí)間線的第1幀中捆綁下面的腳本:
復(fù)制代碼 代碼如下:
//創(chuàng)建一個(gè)NetConnection對(duì)象。
myFLVConnection=new NetConnection();
//創(chuàng)建一個(gè)流連接。
myFLVConnection.connect(null);
//創(chuàng)建一個(gè)NetStream對(duì)象。
//myFLVConnection被指定給該NetStream對(duì)象。
myFLVStream=new NetStream(myFLVConnection);
//myFLVStream被捆綁到Video對(duì)象myVideo:
myVideo.attachVideo(myFLVStream);
//設(shè)置緩沖時(shí)間。
myFLVStream.setBufferTime(10);
接下來(lái),我利用myFLVStream=new NetStream(myFLVConnection);這行代碼創(chuàng)建了一個(gè)NetStream對(duì)象myFLVStream,在創(chuàng)建時(shí)我就需要把為該“流”提供的“連接”告知它,即把myFLVConnection對(duì)象作為參數(shù)傳遞給NetStream類的構(gòu)造函數(shù)。
之后,我把myFLVStream(“流”)捆綁到Video對(duì)象myVideo。然后,我還用NetStream類的setBufferTime()方法以秒為單位指定了一個(gè)緩沖時(shí)間,即要在緩沖區(qū)中裝入可供播放多長(zhǎng)時(shí)間的數(shù)據(jù)后才開(kāi)始播放。
5. 在“播放”按鈕實(shí)例上捆綁下面的腳本:
復(fù)制代碼 代碼如下:
on(release){
//裝載并播放FLV文件。
myFLVStream.play("myFLV.flv");
//定義bufferLoad函數(shù)以供setInterval函數(shù)調(diào)用來(lái)顯示緩沖進(jìn)度。
function bufferLoad(){
//在動(dòng)態(tài)文本中顯示緩沖區(qū)的裝載進(jìn)度。
myText.text="緩沖區(qū)已裝載"+int((myFLVStream.bytesLoaded/myFLVStream.bytesTotal)*100)+"%";
}
//設(shè)置時(shí)間間隔。
setInterval(bufferLoad,20);
}
這個(gè)表達(dá)式—myFLVStream.bytesLoaded/myFLVStream.bytesTotal用來(lái)檢查緩沖區(qū)已裝載的字節(jié)占緩沖區(qū)要裝載的總字節(jié)的比值。bytesLoaded和bytesTotal是NetStream類的兩個(gè)屬性。
6. 在“暫?!卑粹o實(shí)例上捆綁下面的腳本:
復(fù)制代碼 代碼如下:
on(release){
//暫停FLV文件。
myFLVStream.pause();
}
7. 在“停止”按鈕實(shí)例上捆綁下面的腳本:
on(release){
//停止FLV文件并同時(shí)刪除下載的FLV文件。
myFLVStream.close();
}
您可能感興趣的文章:
- flvplayer.swf flv視頻播放器使用方法
- iis中flv視頻無(wú)法播放的處理方法(iis或虛擬主機(jī)管理系統(tǒng))
- 用PHP讀取flv文件的播放時(shí)間長(zhǎng)度
- Windows 2003 iis FLV 視頻不能播放的原因與解決
- flv播放器 在網(wǎng)頁(yè)中播放flv
- 在線FLV播放器實(shí)現(xiàn)方法
- FLV視頻上傳到網(wǎng)上不能播放的原因與解決辦法
- 不需要視頻服務(wù)器,同樣可以在線播放,F(xiàn)LV制作方法
- SWFObject Flash js調(diào)用類
- 基于js與flash實(shí)現(xiàn)的網(wǎng)站flv視頻播放插件代碼
相關(guān)文章
碩思閃客精靈 Sothink SWF Decompiler V3.3 漢化綠色破解版
一款用于瀏覽和解析Flash動(dòng)畫(huà)(.swf文件和.exe文件)的 工具。2006-12-12ActionScript3禁止構(gòu)造請(qǐng)求標(biāo)頭Referer
ActionScript3禁止構(gòu)造請(qǐng)求標(biāo)頭Referer...2007-03-03FLASHAction基礎(chǔ)之Movie Clip的控制
FLASHAction基礎(chǔ)之Movie Clip的控制...2007-03-03