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