【问题标题】:How to sync animations with sound on iPad如何在 iPad 上同步动画和声音
【发布时间】:2010-10-29 16:30:46
【问题描述】:

我在 iPad 上设置了一个页面,因此有一堆角色和背景音乐。点击一个角色将启动一个动画,并且该角色将随着音乐一起播放。问题是,音乐和动画不同步了,可能有更好的方法。

这就是我的做法。
• 页面加载
• 我将角色的静止版本添加为 UIImageViews • 我为每个角色的乐器创建了 AVAudioPlayer 对象,开始播放并将音量设置为 0。
• 我将角色的动画版本添加为带有 png 序列的 UIImageViews,定位在静止版本之上并隐藏它们。 (有一些按钮可以显示可见性和音量开关)

当我演示这个时,音频在页面加载之前开始播放,并且某些字符真的不同步。我应该做些什么不同的事情?我怎样才能同步这些?这是完全错误的方法吗?我对此有点陌生。

【问题讨论】:

    标签: xcode animation uikit avaudioplayer sync


    【解决方案1】:

    我不确定这是否能解决您的具体问题(因为我不完全理解您要做什么),但通常您应该创建一组 AVAudioPlayer 对象,然后调用 [myPlayer prepareToPlay]在他们每个人身上。此调用将数据加载到准备播放的缓冲区中,但实际上并未启动它们。然后,当您准备好开始播放它们时(在viewDidLoad 或任何地方),同时对它们调用[player play]

    请注意,这可能只会比您目前拥有的效果更好,但仍无法完美运行。使动画和音乐保持完美同步非常困难,通常只能通过使用计时器来完成,该计时器偶尔会根据来自音频播放引擎的有关音频播放当前确切位置的信息重置其周期。

    【讨论】:

    • 这是一个很好的观点。您必须使用每隔几毫秒查询 AVAudioPlayer 对象的 currentTime 属性的计时器。然后尝试将您的其他媒体播放与音频播放器对象的播放重新对齐。
    【解决方案2】:

    我知道这个任务已经过时了,但使用 CAKeyframeAnimation 可能会有所帮助。

    【讨论】:

      猜你喜欢
      • 2021-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-04
      • 1970-01-01
      • 1970-01-01
      • 2014-01-02
      • 2012-12-16
      相关资源
      最近更新 更多