Получить общее время звучания и текущее время? - PullRequest
0 голосов
/ 18 ноября 2009

У меня есть проигрыватель во 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));

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

Ответы [ 2 ]

3 голосов
/ 19 ноября 2009

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

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 голосов
/ 11 декабря 2013

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...