怎么获取flv文件的高宽

找网上搜了一段,利用回调函数获取的

client指定对其调用回调方法以处理流或 FLV 文件数据的对象。默认对象为 this,将创建 NetStream 对象。如果将 client 属性设置为另一个对象,则将对该对象调用回调方法。NetStream.client 对象可以调用以下函数并接收关联的数据对象:onCuePoint()、onImageData()、onMetaData()、onPlayStatus()、onTextData() 和 onXMPData()。

例 :

var video:Video = new Video();
this.addChild(video);

var nc:NetConnection = new NetConnection();
nc.connect(null);
var ns:NetStream = new NetStream(nc);
ns.addEventListener(NetStatusEvent.NET_STATUS, netStatus_ns);
function netStatus_ns(obj:Object):void
{
trace(obj.info.code);
/*结果:
NetStream.Buffer.Empty
NetStream.Buffer.Full*/
}
ns.play("ffTrailer.flv");

var meta:Object = new Object();
meta.onMetaData = function(meta:Object)
{
for (var i:String in meta)
{
trace("meta 属性" + i +": 值" + meta[i]);
/*结果:
meta 属性height: 值240
meta 属性canSeekToEnd: 值true
meta 属性audiodatarate: 值96
meta 属性width: 值320
meta 属性audiodelay: 值0.038
meta 属性duration: 值44.251
meta 属性videodatarate: 值700
meta 属性framerate: 值29.939987182617188
meta 属性videocodecid: 值4
meta 属性audiocodecid: 值2*/
}
}
ns.client = meta;
video.attachNetStream(ns);








问题
我想改变视频的显示尺寸
解决办法
设置Video对象的width和height属性,如果要根据视频编码时的尺寸播放,可使用videoWidth和
videoHeight值
讨论
视频尺寸是由Video对象的width和heigh属性决定的。当构造Video对象时可指定宽度和高度,例
如,初始化视频尺寸为160x120:
var video:Video = new Video(160, 120);
通过width和height属性可以任意改变尺寸大小,如:
video.width = 320;
video.height = 240;
Video类还定义了两个只读属性,videoWidth和videoHeight,他们返回视频编码时的尺寸,可以
用这两个属性设置width和height属性:
video.width = video.videoWidth;
video.height = video.videoHeight;
需要注意的是,flv还没下载之前这两个属性是不可用的,因此必须等两个属性可用时才可,我
们可监听netStatus事件达到目的:
videoStream.addEventListener(NetStatusEvent.NET_STATUS, onStatus);
private function onStatus(event:NetStatusEvent):void {
if(_video.videoWidth > 0 && _video.width != _video.videoWidth) {
_video.width = _video.videoWidth;
_video.height = _video.videoHeight;
}
}





onMetaData 是一种办法, 如果视频没有元数据, 那就得侦测videoWidth和videoHeight, 如果不为0, 那就是视频的高宽了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值