如何计算播放中的当前声音循环(0, 30)



我正在播放一个声音文件(mp3)并循环播放30次。

soundChannel = soundLoop.play(0, 30);

我想将当前循环显示为文本字段中的数字。尝试使用 eventListener 来确定每个循环何时重新启动,但我认为Event.SOUND_COMPLETE在加载声音时调度,而不是每次重复播放。

我将不胜感激在这方面的一些指导。谢谢。

使用工作代码进行编辑感谢 @Bar ış

    var lastPosition:Number;
    var loops:int=1;
    var timerLoops:Timer = new Timer(1000);
    timerLoops.addEventListener(TimerEvent.TIMER, startTimerLoops);
    function startTimerLoops():void
    {
        timerLoops.start();
        if(lastPosition > soundChannel.position)
            loops++;
            lastPosition = soundChannel.position;
            trace("Playing " + loops + " of 30" + "-" + lastPosition);
    }

soundChannel.position是从声音开始开始的时间(以毫秒为单位)。声音循环后重置为 0。您可以跟踪它以确定声音是否循环。

更新/输入框架中类似以下内容的内容可以工作:

private function update():void
{
   if(lastPosition > soundChannel.position)
      loops++;
   lastPosition = soundChannel.position;
}

最新更新