【问题标题】:Pre Loading the embedded sound before playing播放前预加载嵌入的声音
【发布时间】:2013-01-28 12:01:46
【问题描述】:
package{
import flash.display.MovieClip;
public class MySoundContainer extends MovieClip {
 var _mySound:MySound = new MySound();  // my custom sound imported in library 

 public function _OnButtonClick(e:MouseEvent) : void {
   _mySound.play();  // first call shows delay in play
 } 
}
}

当按钮第一次被点击时,我发现播放声音有明显的延迟。

是否可以预先为嵌入文件预加载音效?

【问题讨论】:

    标签: actionscript-3


    【解决方案1】:

    可能会调用play 并在应用程序启动时静音(音量= 0),稍后在_OnButtonClick 中返回音量将对您有所帮助。

    但是很奇怪,预加载中不需要嵌入声音,它们已经与 swf 文件一起加载了。可能是 mp3 文件开头的缓冲或音量衰减(将音量从 0 增加到 1 1-2 秒)。这种延迟是否仅在第一次点击时出现?

    【讨论】:

    • 是的,延迟只在第一次点击时发生。我也在考虑您建议的相同解决方案。想知道是否有更好的方法。
    • 恐怕没有更好的变种了。将 mp3 嵌入 swf 是播放声音的最快方式。第一次调用声音时可能在 Flash 播放器中存在一些开销(例如,一些解码或将文件读入内存)所以我想如果你解决这个问题,最好的方法是提前调用 play
    • 我发现问题在于在 Flash 中预览游戏。当我运行编译的 swf 时,它运行良好。我还添加了一个链接,它帮助我找到了答案中的原因
    【解决方案2】:

    Latency in playing short sounds in flash 极大地帮助我了解了声音播放延迟的各种原因。

    我发现(从上面的链接)只有在 Flash 中预览时才会出现问题。运行编译好的 swf 时效果很好。

    如果有人像我一样遇到问题,他们应该尝试执行 File->Publish 并运行 .html 文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-02
      • 2014-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多