1

我正在播放一个声音文件 (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);

    }
4

1 回答 1

1

soundChannel.position是从声音开始的毫秒数。声音循环后重置为 0。您可以跟踪它以确定声音是否循环播放。

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

private function update():void
{
   if(lastPosition > soundChannel.position)
      loops++;
   lastPosition = soundChannel.position;
}
于 2012-11-14T02:18:25.360 回答