我想非常精确地控制声音的开始,但在开始声音之前似乎要等待一些东西。就好像播放器中有一个以大约 43 fps 运行的内部时钟,并且声音只能在该时钟的节拍上开始。
项目的帧速率或运行在哪台计算机上并不重要,它始终为 43 fps(至少对我而言)。
为了测试这一点,启动一个声音,然后每帧将 channel.position 与预期的位置进行比较,例如 getTimer() - startTime。差异总是(对我而言)23 或 46 毫秒。
我在这里发现了一个问题,它讨论了位置属性,并且它以自己的速率更新,在我的例子中恰好是 43 fps,大约每 23 毫秒。
有没有办法控制声音的播放开始并知道位置属性何时更新?如果有人能解释 Flash 实际在做什么以及什么时候做的,那就太好了!
我真的很感激所有的意见,这太奇怪了。
编辑:我注意到 position 属性只包含 23.219954648526077 的倍数,例如 46.439909297052154、69.65986394557822?如果您在创建频道后直接询问它包含我刚刚设置的数字,但在下一帧中只有这些特定数字。有人知道吗?