我正在制作一个闪光灯,它基本上是一个非常简单的跟踪器。我的问题是关于顺序播放,更具体地说是时间问题。
SoundChannel 对象方便地提供了一个 SoundCompleted 事件,但依赖它会导致声音之间的微小间隙,这(可悲地)使其无用。
到目前为止,我已经设法挖掘出的所有教程都是使用每毫秒触发一次的事件并手动观察从哪里开始下一个声音的滴答声。这似乎有点hackish和不必要的资源浪费。
有没有更好的方法来通过无间隙播放顺序定时声音?
我正在制作一个闪光灯,它基本上是一个非常简单的跟踪器。我的问题是关于顺序播放,更具体地说是时间问题。
SoundChannel 对象方便地提供了一个 SoundCompleted 事件,但依赖它会导致声音之间的微小间隙,这(可悲地)使其无用。
到目前为止,我已经设法挖掘出的所有教程都是使用每毫秒触发一次的事件并手动观察从哪里开始下一个声音的滴答声。这似乎有点hackish和不必要的资源浪费。
有没有更好的方法来通过无间隙播放顺序定时声音?
如果您以毫秒为单位查询当前声音的时间(或剩余时间),并为该时间段设置超时,并在超时处理程序中开始下一个声音,那会起作用吗?这不是我尝试过并发现可靠的东西,但超时处理程序将在接近 Flash Player 可以管理的直接时间时被调用(不管帧率等)。因此,如果它不起作用,我真的无法想象还会发生什么,除非它是估计需要多少 MS 余地的一些变化,并尝试在当前声音之前 5ms 或任何其他声音开始结尾。
这可以工作,但超时并不独立于帧率,或者不完全独立。正如您所说,它们会触发尽可能接近设置的超时,但我发现根据帧速率的不同,准确性会有所不同。
但是对于原来的问题,我做了一些研究并自己回答了。