【发布时间】:2009-05-30 15:32:04
【问题描述】:
在 ENTER_FRAME 事件上调用 channel.position,我注意到它不是每帧都更新,但它看起来更像是每帧半。
var sound:Sound = new Sound(new URLRequest('music.mp3'));
var channel:SoundChannel = sound.play(); // assume the sound is completely,
// totally, 100% loaded
addEventListener(Event.ENTER_FRAME, function(e:Event):void{
trace( "Position : " + channel.position
+ " - Frame : " + int(channel.position / 30));
});
将产生类似于 (30 FPS) 的结果
...
Position : 1439.6371882086166 - Frame : 47
// 48 is missing
** Position : 1486.077097505669 - Frame : 49
** Position : 1486.077097505669 - Frame : 49
Position : 1532.517006802721 - Frame : 51
Position : 1578.9569160997733 - Frame : 52
// 53 is missing
** Position : 1625.3968253968253 - Frame : 54
** Position : 1625.3968253968253 - Frame : 54
Position : 1671.8367346938776 - Frame : 55
// 56 is missing
Position : 1718.2766439909296 - Frame : 57
...
以前有没有人注意到这种行为?知道这种不准确性,是否有任何技术可以确定正在播放的音频“帧”?
【问题讨论】:
标签: actionscript-3 actionscript synchronization audio