我想要做的是以歌曲持续时间的形式显示歌曲下载进度。例如: 00: 00, 01:05, 02:14, 03:58, .... 04:13是歌曲总时长 04:13。到目前为止,我有这个代码:
var soundClip:Sound;
var sTransform:SoundTransform = new SoundTransform(0.1);
function init() {
soundClip = new Sound();
soundClip.load(new URLRequest("magneto.mp3"));
//soundClip.load(new URLRequest("making.mp3"));
soundClip.addEventListener(Event.COMPLETE, soundLoaded);
soundClip.addEventListener(ProgressEvent.PROGRESS, soundLoading);
}
init();
function convertTime(millis:Number):String{
var displayMinutes:String;
var displaySeconds:String;
var Minutes:Number = (millis % (1000*60*60)/(1000*60));
var Seconds:Number = ((millis % (1000*60*60)) % (1000*60))/1000;
if(Minutes<10){
displayMinutes = "0"+Math.floor(Minutes);
}else{
displayMinutes = Math.floor(Minutes).toString();
}
if(Seconds<10){
displaySeconds = "0"+Math.floor(Seconds);
}else{
displaySeconds = Math.floor(Seconds).toString();
}
return displayMinutes + ":" + displaySeconds;
}
function soundLoaded(e:Event) {
soundClip.play(0,0,sTransform);
}
function soundLoading(e:ProgressEvent) {
trace(convertTime(soundClip.length));
}
如您所见,我正在用两首歌曲对其进行测试,根据上面的代码,两者的持续时间分别为:03:52 和 11:28,但根据窗口,这两首歌曲最后 03:52 和 05:44 . 这是代码和两个 mp3 文件。
谢谢你。
编辑:我正在分析这个页面来播放歌曲making.mp3,调试后我意识到有一个值被传递给播放器,然后这样:0、0、2664、7576 、...344370这些值显示为 *00:00, 01:05, 02:14, 03:58, .... 04:13* 作为下载进度。知道这些数据来自哪里可以解决我的问题,最初我认为它可以通过长度属性获得,但这仅适用于磁力.mp3 文件而不适用于两首歌曲。
总的来说,我想展示:
00:00, 00:23, 01:23...03:57(其中 03:57 是任何歌曲的持续时间)作为下载进度。
感谢你们对我的帮助。干杯:)