1

私がやろうとしているのは、曲のダウンロードの進行状況を曲の継続時間の形で表示することです。例: 00:00, 01:05, 02:14, 03:58, .... 04:1304: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 は任意の曲の継続時間)、ダウンロードの進行に伴います。

助けてくれてありがとう。乾杯 :)

4

1 に答える 1