2009-11-18 4 views
0

У меня есть плеер в Flash ActionScript 3. Мне нужно взять общее время звукового файла и текущее время звукового файла. Мой код:Получить общее время и текущее время звука?

function onPlayProgress(evt:Event):void { 
      var sndLength:int = Math.ceil(snd.length /(snd.bytesLoaded/snd.bytesTotal)); 
      var seekbar = 100 * (channel.position/sndLength); 
      playBar.seekbar.x = seekbar*5.8; 
      var _totalTime:Number = (((snd.length /(snd.bytesLoaded/snd.bytesTotal))*0.001/60)); 

Что такое текущее время?

ответ

3

Я не совсем ясно, что образец кода вы предоставили пытается общаться, но если вы хотите, чтобы получить текущую позицию звука, который играл бы вы сделать что-то вроде этого:

protected var sound:Sound; 
protected var soundChannel:SoundChannel; 

protected function loadSound():void 
{ 
    sound = new Sound(new URLRequest("path_to_sound.mp3")); 
    sound.addEventListener(Event.COMPLETE, onSoundLoadComplete); 
{ 

protected function onSoundLoadComplete(e:Event):void 
{ 
    sound.removeEventListener(Event.COMPLETE, onSoundLoadComplete); 
    soundChannel = sound.play(); 
    addEventListener(Event.ENTER_FRAME, onEnterFrame); 
} 

//Calculuate the sound time 
protected function onEnterFrame(e:Event):void 
{ 
    var minutes:uint = Math.floor(soundChannel.position/1000/60); 
    var seconds:uint = Math.floor(soundChannel.position/1000) % 60; 
    trace('position: ' + minutes + ':' + seconds);   
}; 
+0

хорошо я получил, но как я могу преобразовать это в минуте :( – coderex

+0

Спасибо verymuch – coderex

+0

как получить у общего время? – coderex

0

Я так не думаю. sound.length не может быть принято за общее время, это общее время загруженного потока. Если вы отлаживаете код, вы обнаружите, что sound.length меняется, пока звук не будет полностью загружен. Но я понятия не имею, чтобы получить общее время еще ... Я вычислил это следующим образом: оценкамTotalTimeLength = sound.bytesTotal/sound.bytesLoaded * sound.length;

Смежные вопросы