PDA

Просмотр полной версии : Определить длину аудио файла в секундах


goword
05.12.2007, 12:16
Как средствами флеш определить длину аудиофайла более точно?
Пока нашел такое решение:
sd_sound.duration*getBytesTotal()/getBytesLoaded()/1000
есть более точное? у меня оно некорректно работает!

Nata_cher
05.12.2007, 12:32
а просто Sound.duration();
вот пример из хелпа:
var my_sound:Sound = new Sound();
my_sound.onLoad = function(success:Boolean) {
var totalSeconds:Number = this.duration/1000;
trace(this.duration+" ms ("+Math.round(totalSeconds)+" seconds)");
var minutes:Number = Math.floor(totalSeconds/60);
var seconds = Math.floor(totalSeconds)%60;
if (seconds<10) {
seconds = "0"+seconds;
}
trace(minutes+":"+seconds);
};
my_sound.loadSound("song1.mp3", true);

goword
05.12.2007, 12:49
Nata_cher - вы показали пример, определения длины звука, после его подгрузки, а мне нужно в его процессе.
Я делаю полосу состояния в мп3 плеере, мне нужно заранее определить длину звука! Как?

koIIImarik
05.12.2007, 12:53
sd_sound.duration*getBytesTotal()/getBytesLoaded()/1000

По моему очень даже действенный способ, можно ещё использовать Math.round(); Единственное что, лучше использовать его не сразу, а после загрузки опр. количества данных. Т.е. сделать проверку:

if(sd_sound.getBytesLoaded()>1000){
setInterval(function(){
trace(sd_sound.duration*sd_sound.getBytesTotal()/sd_sound.getBytesLoaded()/1000);
},30);
}

telit
05.12.2007, 12:54
Metadata...

screamge
05.12.2007, 13:37
http://flasher.ru/forum/showthread.php?t=102654