简单地说,我正在制作一个flash midi播放器。我正在使用ENTER_FRAME作为我的时间。我将帧速率设置为100,以确保每个音符的时间以毫秒为单位。
当我用CTRL + ENTER测试电影时,它可以正常工作。当我发布它并在浏览器中打开它(测试IE和Chrome)时,它突然播放的速度慢得多。我不认为这是一个性能问题,因为代码非常简单。
如果这种减速是一致的,那么我可以使用它,以便播放速度正确。浏览器是否会降低帧速率或者是否实现某种帧率上限?发生了什么事?
答案 0 :(得分:0)
据我所知,浏览器会为Flash和其他插件实现帧速率限制,以限制CPU使用率。
您可以运行Mr.Doob的Stats类来查找每秒的确切帧速率(mrdoob.com/blog/post/582)。
对于midi播放器,如果你在时间线上使用声音,如果你需要它同步它最好将声音设置为类型,“流”并处理较低的声音质量如果你之前遇到间隙回放。
如果它不在时间轴上,而是在外部加载声音,则可以使用Firebug之类的工具来查看声音文件缓冲或加载需要多长时间。
答案 1 :(得分:0)
首先,这是一个很大的警告,或多或少没有办法在闪光灯中做适当的时机。这是因为您几乎总是在UI线程中运行代码。 UI线程负责渲染帧,这对于复杂的帧可能需要一段时间,从而使帧速率实际上下降。因此,在某些条件下,Flash播放器可能会渲染较少帧的原因有很多。例如,许多浏览器倾向于将更少的资源专用于处于非活动选项卡或最小化窗口中的Flash播放器实例(以及其他插件)。我不知道有任何浏览器故意在活动选项卡/窗口中使闪存速度变慢。 This article可能会提供更多信息。
现在,解决您的实际问题。我建议您检查html中的嵌入代码,可能会有一个不同的帧速率值,可能会影响您在电影中设置的内容。这就是为什么它在独立播放器中表现如预期的那样,但在嵌入时却没有。