我在iPad上设置了一个页面,因此有一堆字符和背景音乐。点击角色将开始动画,角色将与音乐一起播放。问题是,音乐和动画不同步,可能有更好的方法。
以下是我的表现方式
•页面加载
•我将字符的静态版本添加为UIImageViews
•我为每个角色的乐器创建AVAudioPlayer对象,开始播放并将音量设置为0
•我将字符的动画版本添加为带有png序列的UIImageViews,位于静止版本上方并隐藏它们。 (有按钮可以投射能见度和音量开关)
当我演示这个时,音频会在页面加载之前开始播放,而且某些字符真的不同步。我应该做些什么呢?我怎样才能同步这些?这是完全错误的做法吗?我对此很陌生。
答案 0 :(得分:1)
我不确定这是否能解决您的具体问题(因为我不完全理解您要做的事情),但通常您应该创建一组AVAudioPlayer
个对象,然后调用{每个人{1}}。此调用将数据加载到准备播放的缓冲区中,但实际上并未启动它们。然后,当您准备好开始播放时([myPlayer prepareToPlay]
或其中任何地方),请同时拨打viewDidLoad
。
请注意,这可能只会比您目前的效果更好,但仍然无法完美运行。保持动画和音乐完美同步非常困难,通常只能通过使用定时器来实现,该定时器偶尔会重置其周期性,以响应来自音频播放引擎的信息,关于音频播放当前的确切位置。
答案 1 :(得分:0)
我知道任务已经过时,但使用CAKeyframeAnimation
可能有所帮助。