私がやろうとしているのは、曲のダウンロードの進行状況を曲の継続時間の形で表示することです。例: 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 ですが、ウィンドウによると、これらの 2 つの曲は 03:52 と 05:44 です。 . コードと両方の mp3 ファイルを次に示します。
ありがとうございました。
編集:私はこのページを分析して、曲の作成.mp3 を再生します。デバッグした後、プレーヤーに渡される値があることに気付き、次のように進みます: 0, 0, 2664, 7576,...344370これらの値は、ダウンロードの進行状況に応じて、*00:00、01:05、02:14、03:58、.... 04:13* と表示されます。このデータがどこから来たのかを知ることで問題が解決します。最初は長さのプロパティから取得できると思っていましたが、これは両方の曲ではなく、magneto.mp3 ファイルでのみうまく機能しました。
全体として、私は示したい:
00:00、00:23、01:23...03:57 (03:57 は任意の曲の継続時間)、ダウンロードの進行に伴います。
助けてくれてありがとう。乾杯 :)