日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

制作简单视频播放器

發布時間:2025/3/15 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 制作简单视频播放器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、構建視頻NetConnection和NetStream;
2、音量控制用soundTransform(這 個讓我耗了一些精力,在AS2中可以setvolume,在AS3就不行了);
3、暫停用pause(),恢復回放暫停的視頻流用resume();
4、接收視頻信息用onMetaData(如視頻總時間data.duration);
5、偵聽視頻流的開始和結束用NetStatusEvent.NET_STATUS,info.code如果 為"NetStream.Play.Stop",則可重播或播放新的視頻;
//以上只是一些最基本的視頻知識,希望對初學AS3的人能有所幫助,這將是我最大的欣慰。
[效 果]


[步驟]
第一步:創建播放按鈕、暫停按鈕,實例名分別為play_btn、pause_btn;
第二步:畫兩個長矩形,分別轉為影片剪輯,實例名分別為jzjd_mc、bfjd_mc,作為加載進度條與播放進度條;
第三步:在庫中右鍵選擇“新建視頻”,在彈出的對話框中點選“視頻(受ActionScript控制)”,拖到場景中,實例名為vid;
第四步:在場景中拉兩個動態文本,實例名分別為bftxt(顯示播放時間)、zcdtxt(顯示總時間);
第五步:畫一個長矩形,轉為影片剪輯,作為音量條,實例名為ylt_mc;
第六步:畫一個小圓,轉為影片剪輯,作為音量滑塊,實例名為ylhk_mc;
第七步:在幀上寫如下代碼:
[代碼]
//創建一個 NetConnection 對 象
var nc:NetConnection=new NetConnection();
/*如果連接到沒有使用服務器的FLV 文件,則通過向 connect() 方法傳遞值
null,來播放流式 FLV 文件*/
nc.connect(null);
/*創建一個 NetStream 對象(該對象將 NetConnection 對象作為參數)并
指定要加載的 FLV 文件*/
var ns:NetStream=new NetStream(nc);
ns.play("http://www.helpexamples.com/flash/video/cuepoints.flv");
/*使用 Video 類的 attachNetStream() 方法附加以前創建的 NetStream
對象(視頻實例名為vid)*/
vid.attachNetStream(ns);
//音量初始值
var yl:Number=0.5;
var nsyl:SoundTransform =new SoundTransform();
//nsyl.volume=yl
//播放進度與加載進度影片縮放為0
bfjd_mc.scaleX=jzjd_mc.scaleX=0;
//申明變量播放與下載百分比以及總時間(秒)的初始值為0
var bfbfb:int=0;
var xzbfb:int=0;
var _duration:Number=0;
//指定在其上調用回調方法的對象
var _client:Object=new Object();
_client.onMetaData=onMetaData;
ns.client=_client;
//按鈕可見性與添加偵聽事 件
play_btn.visible=false;
pause_btn.visible=true;
pause_btn.addEventListener(MouseEvent.CLICK, zt);
play_btn.addEventListener(MouseEvent.CLICK, bf);
//忽略錯誤
ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
function asyncErrorHandler(event:AsyncErrorEvent):void {
}
//暫停
function zt(event:MouseEvent):void {
play_btn.visible=true;
pause_btn.visible=false;
//視頻暫停
ns.pause();
}
//播放
function bf(event:MouseEvent):void {
play_btn.visible=false;
pause_btn.visible=true;
//恢復回放暫停的視頻流
ns.resume();
addEventListener(Event.ENTER_FRAME,gx);
}
//接收在正播放的 FLV 文件中嵌入的描述性信息時調度
function onMetaData(data:Object):void {
_duration=data.duration;
}
//申明變量播放信號
var bfxh:String;
//偵聽視頻流的開始和末尾
ns.addEventListener(NetStatusEvent.NET_STATUS, statusHandler);
function statusHandler(event:NetStatusEvent):void {
bfxh=event.info.code;
}
//不斷更新進度與文本的顯示
addEventListener(Event.ENTER_FRAME,gx);
function gx(event:Event):void {
if (ns.bytesLoaded>0) {
//加載進度
xzbfb=ns.bytesLoaded/ns.bytesTotal*100;
jzjd_mc.scaleX=xzbfb/100;
}
if (_duration>0 && ns.time>0) {
//播放進度
bfbfb=ns.time/_duration*100;
bfjd_mc.scaleX=bfbfb/100;
}
if (bfxh=="NetStream.Play.Stop") {
//播放完畢時的設置
bfbfb=0;
bfjd_mc.scaleX=0;
ns.pause();
ns.seek(0);//將播放頭置于視頻開始處
play_btn.visible=true;
pause_btn.visible=false;
}
//文本顯示內容
bftxt.text=Math.round(ns.time/60)+":"+Math.round(ns.time%60);
zcdtxt.text=Math.round(_duration/60)+":"+Math.round(_duration%60);
//音量控制
yl=(ylhk_mc.x-345)/50;
ylt_mc.scaleX=yl;
nsyl.volume =yl;
ns.soundTransform =nsyl;
}
//音量滑塊拖 動控制
var fw:Rectangle=new Rectangle(345,328,50,0);//拖動范圍
ylhk_mc.addEventListener(MouseEvent.MOUSE_DOWN,ylhkax);
ylhk_mc.addEventListener(MouseEvent.MOUSE_UP,ylhksk);
stage.addEventListener(MouseEvent.MOUSE_UP,ylhksk);
function ylhkax(event:MouseEvent):void {
ylhk_mc.startDrag(false,fw);
}
function ylhksk(event:MouseEvent):void {
ylhk_mc.stopDrag();
}

轉載于:https://www.cnblogs.com/top5/archive/2010/02/12/1667791.html

總結

以上是生活随笔為你收集整理的制作简单视频播放器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。