如何获取流媒体的加载进度。

tonylovelinyu 2010-12-06 04:10:14
ms NetStream 类的byteLoaded
属性没有作用。是不是需要配置或者要在FMS上写啥服务端脚本啊?
求解释
...全文
187 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
tonylovelinyu 2010-12-07
  • 打赏
  • 举报
回复

无语额。我每次获取的两个值都是0额。。


package {
import flash.display.Sprite;
import flash.events.Event;
import flash.events.NetStatusEvent;
import flash.media.Video;
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.text.TextField;
public class AsTest extends Sprite
{
private var stream:NetStream=null;
private var progressLabel:TextField=new TextField();
private var connection:NetConnection=null;
private var video:Video;
public function AsTest()
{
progressLabel.x=100;
progressLabel.y=250;

connection=new NetConnection();
connection.addEventListener(NetStatusEvent.NET_STATUS,handlerNetStatusChange);
connection.connect("rtmp://127.0.0.1/vod");
var callObj:Object=new Object();
callObj.onBWCheck=function (... rest):Number {
return 0;
}

callObj.onBWDone= function (... rest):void {
var p_bw:Number=0;
if (rest.length > 0) p_bw = rest[0];
// do something here
// when the bandwidth check is complete
trace("bandwidth = " + p_bw + " Kbps.");
}
connection.client=callObj;
this.addChild(progressLabel);

}
private function handlerEnterFrame(oEvent:Event):void
{
if(this.stream!=null)
{
progressLabel.text="loadedByte:"+this.stream.bytesLoaded.toString()+"total:"+this.stream.bytesTotal.toString();
}
}

private function handlerNetStatusChange(oEvent:NetStatusEvent):void
{
var codeInfo:String=oEvent.info.code;
switch(codeInfo)
{
case"NetConnection.Connect.Success":
stream=new NetStream(oEvent.currentTarget as NetConnection);
var streamClientObj:Object=new Object();
streamClientObj.onMetaData=function(oParameter1:Object):void
{
for(var i in oParameter1){
trace(i+":"+oParameter1[i]);
}
}
stream.client=streamClientObj;

stream.addEventListener(NetStatusEvent.NET_STATUS,handlerNetStreamStatusChange);
stream.play("sf");
video=new Video();
video.addEventListener(Event.ENTER_FRAME,handlerEnterFrame);
video.attachNetStream(stream);
this.addChild(video);
break;
}
}
private function handlerNetStreamStatusChange(oEvent:NetStatusEvent):void
{

}
}
}

还有确定是用FMS发布以后获取的?如果没有的话那肯定没问题
leemiki 2010-12-06
  • 打赏
  • 举报
回复
哪有这么麻烦!!bytesLoaded、bytesTotal两个属性就搞定的

不起作用是你代码有问题,参照着API上的例子去写

上面对NetStream和NetConnection讲的很详细~~
passself 2010-12-06
  • 打赏
  • 举报
回复
取总的byte/当前loaderedByte就可以了,把起显示在label就可以显示出来了

4,328

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计 Flex
社区管理员
  • Flex
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧