我正在使用 AVAudioPlayer 的多个实例同时播放多个音频文件。我运行一个循环来开始播放音频文件(预先调用 prepareToPlay 并且循环仅调用 play 方法)
但不可避免的是,其中一名球员的比赛并不同步。如何确保所有 4 个播放器同时开始播放音频?
Thanks.
The 苹果文档 http://developer.apple.com/library/ios/#DOCUMENTATION/AVFoundation/Reference/AVAudioPlayerClassReference/Reference/Reference.html谈谈如何“同时播放多个声音,每个音频播放器播放一个声音,并精确同步”。也许你需要打电话playAtTime:
e.g. [myAudioPlayer playAtTime: myAudioPlayer.deviceCurrentTime + playbackDelay];
事实上,playAtTime 的 Apple 文档: http://developer.apple.com/library/ios/DOCUMENTATION/AVFoundation/Reference/AVAudioPlayerClassReference/Reference/Reference.html#//apple_ref/occ/instm/AVAudioPlayer/playAtTime%3a包含以下代码片段:
NSTimeInterval shortStartDelay = 0.01; // seconds
NSTimeInterval now = player.deviceCurrentTime;
[player playAtTime: now + shortStartDelay];
[secondPlayer playAtTime: now + shortStartDelay];
它们应该同时播放(假设您选择了足够大的值)shortStartDelay
-- 不会太快,以至于它会在该线程返回或其他什么之前发生)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)