【问题标题】:seamless dynamic audio loop on iPhoneiPhone 上的无缝动态音频循环
【发布时间】:2010-09-08 04:16:46
【问题描述】:

好的,

所以我试图将三个声音文件无缝循环在一起,第二个文件对自身循环 n 次。假设我可以通过将它们对接在一起让它们在另一个程序中无缝地循环在一起。但是,当我使用 avaudioplayer 的 audioPlayerDidFinishPlaying 委托方法时,对接会有轻微延迟(即使使用“prepareToPlay”方法也是如此。另一点复杂性是中间声音需要继续循环 n 次 AKA,只要 touchesDidEnd方法尚未被调用,此时程序将播放第三个也是最后一个剪辑以结束声音“播放列表”。

例如,假设观众在演出结束后鼓掌。声音文件 A 将包含最初的掌声,声音文件 2 将包含人群以连续速度欢呼的可循环样本,直到用户抬起按钮,此时程序应该进入第 3 个声音文件,其中将是人群的掌声。

所以我最初使用 AVAudioPlayer 的尝试似乎不够快,无法立即循环播放,所以我需要另一种更快的方法来做到这一点,建议?

【问题讨论】:

    标签: iphone loops audio avaudioplayer


    【解决方案1】:

    对于循环,请查看 AVAudioPlayer 的 numberOfLoops 属性。比尝试使用播放器的委托自己处理循环逻辑要好。

    至于从一个循环样本到“尾”样本的平滑淡出,使用 AVAudioPlayer 将很难实现。最好的选择可能是使用尾随声音文件启动另一个播放器,并使用计时器在两者之​​间快速交叉淡入淡出,使用每个播放器的 volume 属性。

    如果这不令人满意(我怀疑它可能不会),我认为您别无选择,只能使用 AudioQueue API 来解决这个问题。

    【讨论】:

    • 这就是我害怕的,不期待搞乱audioqueue api。昨晚我确实弄乱了循环的数量,它确实使循环部分看起来很模糊,但是是的,这只是等式的一半。谢谢,希望其他人可以提供更简单的答案。
    猜你喜欢
    • 2019-06-20
    • 2018-04-06
    • 1970-01-01
    • 2023-03-17
    • 2012-12-06
    • 2014-01-12
    • 2015-05-03
    • 1970-01-01
    • 2019-05-13
    相关资源
    最近更新 更多