2009-03-21 14 views
5

ActionScript 3'te temel bir MP3 çalar oluşturuyorum. Şarkının ne kadarının çaldığını gösteren temel bir ilerleme çubuğum var. ilerleme gibi, 0 ile 1 arasında normalize edilmiş bir ondalık yüzde olarak hesaplanır:Hala yüklenen bir Sound nesnesinde son uzunluğu nasıl alabilirim?

var progress:Number = channel.position/sound.length; 

sorun, ses hala yükleniyor,/Sound.length tampon yanlıştır. Bu, ilerleme çubuğumun atlanmasına ve ses tamamen doluncaya ve ses daha fazla değişmeyene kadar geriye doğru gitmesine neden olur.

Hala yüklenmekte olan bir ses nesnesinin son uzunluğunu belirlemenin en iyi yolu nedir?

1:

cevap

6

Orada en az iki seçenek vardır% 0 ilerleme çubuğu bırakın ve ses tamamen yüklenene kadar taşımak yok. Yani: Zaten yüklenmiş olan dosyanın yüzdesine bağlı olarak yaklaşık yüzde yüzdelik yaklaşık yüzde. Böyle bir şey: ses düzgün tagged olduysa

private var _sound:Sound = /* Your logic here */; 
private var _channel:SoundChannel = _sound.play(); 

_sound.addEventListener(ProgressEvent.PROGRESS, onSoundProgress); 

private function onSoundProgress(event:ProgressEvent):void { 
    var percentLoaded:Number = event.bytesLoaded/event.bytesTotal; 
    var approxProgress:Number 
     = _channel.position/_sound.length * percentLoaded; 
    // Update your progress bar based on approxProgress 
} 
+0

İkinci fikir harika! Anlatabileceğim bir kaç milisaniye içinde oldukça doğru olmalı. – Soviut

2

Ayrıca onun ID3 etiketi aracılığıyla sesin uzunluğunu öğrenebilirsiniz.

İlgili konular