【发布时间】:2016-07-05 07:47:09
【问题描述】:
我已经动态创建了Sound对象
var files:Object={};
files["file1"]={};
files["file1"]["snd"]=new Sound();
...... //url etc
files["file1"]["snd"].addEventListener(ProgressEvent.PROGRESS, onLoadProgress);
function onLoadProgress(event:ProgressEvent):void
//// somehow I need to get the raw data (first 48 bytes to be exact) of the mp3 file which is downloading now
}
我在那个函数中尝试了URLRequest
var myByteArray:ByteArray = URLLoader(event.target).data as ByteArray;
但没有成功
文件数据这么简单的东西竟然这么难弄,真是搞笑
【问题讨论】:
-
(从我的头顶):在进度事件中,通过事件的
.bytesLoaded属性测试您是否至少有 48 个字节,如果有,通过声音 @987654326 @ 方法,将 48 个字节提取到一个字节数组中。如果您正在尝试解码 mp3 帧数据/id3v2/等...您可能会更好地使用URLStream,进行原始字节处理,而不是将该字节数组转换为您的 Sound 对象。 -
@SushiHangove 哦,
Sound .extract提取处理后的数据(帧),这是我最大的遗憾。它与原始 mp3 文件数据无关 -
比使用
URLStream,从那里读取和转换 -
@SushiHangover 似乎需要重写太多代码
-
@elDude 您在寻找 ID3 信息吗?如果是,您可以在您的
Sound对象上使用Event.ID3事件侦听器来获取...
标签: actionscript-3 object flash-cs5