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