Actionscript 3 onMetaData从未要求MP3流
我正在使用Flash中的NetStream播放MP3资源 要显示歌曲的进度,我需要歌曲的持续时间 但是NetStream对象永远不会调用onMetaData 这是密码Actionscript 3 onMetaData从未要求MP3流,actionscript-3,flash,Actionscript 3,Flash,我正在使用Flash中的NetStream播放MP3资源 要显示歌曲的进度,我需要歌曲的持续时间 但是NetStream对象永远不会调用onMetaData 这是密码 更新:MP3资源似乎没有为MP3资源提供必要的元数据。因此,这不是代码的问题,它与我在应用程序中使用的流媒体服务器有关。请确保您正在设置类的适当性 客户端属性:指定调用回调方法以处理的对象 流式传输或F4V/FLV文件数据。默认对象是这个 正在创建NetStream对象。如果将客户端属性设置为 在另一个对象上调用回调方法。这个 N
更新:MP3资源似乎没有为MP3资源提供必要的元数据。因此,这不是代码的问题,它与我在应用程序中使用的流媒体服务器有关。请确保您正在设置类的适当性 客户端属性:指定调用回调方法以处理的对象 流式传输或F4V/FLV文件数据。默认对象是这个 正在创建NetStream对象。如果将客户端属性设置为 在另一个对象上调用回调方法。这个 NetStream.client对象可以调用以下函数并接收 关联的数据对象:onCuePoint()、onImageData()、onMetaData(), onPlayStatus()、onSeekPoint()、onTextData()和onXMPData() 在底部的NetStream类中定义该类
class ConnectionClient {
private var _owner:YourNSStreamObjectClass;
public function ConnectionClient(owner:YourNSStreamObjectClass) : void {
_owner = owner;
}
public function onMetaData(info : Object) : void {
//_owner.setMetaData(info);
}
public function onCuePoint(info : Object) : void {
//trace("cuepoint: time=" + info.time + " name=" + info.name + " type=" + info.type);
}
public function onXMPData(info : Object) : void {
//trace("xmp data = " + info);
}
public function onPlayStatus(info : Object) : void {
//trace("onPlayStatus data = " + info);
}
}
发布一些代码。。我们不是魔术师!:)要调用onMetadata,mp3需要有元数据,但情况并非总是如此。您可以在mp3完全加载后找到它的持续时间我还定义了onMetaData函数。因此,如果您添加代码,可能会有所帮助。我也实现了这个特性,工作时没有任何问题。可能还缺少其他内容。请尝试替换代码中的这一行:
netStream.client=this代码>到这个:netStream.client={onMetaData:onMetaData}代码>如我在回答中所列。@ManmohanBishnoi检查函数是否到达,并检查您的netstream源是否确实为函数提供了要接收的元数据。@Vesper您是对的,netstream源根本不提供元数据m_metaData=null
ns.client = new ConnectionClient(this);
class ConnectionClient {
private var _owner:YourNSStreamObjectClass;
public function ConnectionClient(owner:YourNSStreamObjectClass) : void {
_owner = owner;
}
public function onMetaData(info : Object) : void {
//_owner.setMetaData(info);
}
public function onCuePoint(info : Object) : void {
//trace("cuepoint: time=" + info.time + " name=" + info.name + " type=" + info.type);
}
public function onXMPData(info : Object) : void {
//trace("xmp data = " + info);
}
public function onPlayStatus(info : Object) : void {
//trace("onPlayStatus data = " + info);
}
}