【问题标题】:Swift: How to play short sounds longer斯威夫特:如何延长短音的播放时间
【发布时间】:2015-07-12 01:04:42
【问题描述】:

我正在使用 Swift 开发一个 SpriteKit 项目,我想播放我的 1 秒长的声音。例如,声音文件是“beep”——我希望它扩展为“beeeeep”或“beeeeeeeeep”之类的东西。我尝试了几个选项来播放声音文件,但我找不到扩展它的方法。

目前,我正在使用 SKAction 播放声音:

var beep = SKAction.playSoundFileNamed("beep.caf", waitForCompletion: false)
runAction(beep)

有人知道怎么做吗?

【问题讨论】:

  • 也许将waitForCompletion 设置为true 并将runAction(beep) 放入循环中。
  • 如果你放慢声音让它播放更长时间有意义吗?
  • @M.kazemAkhgary 我实际上已经尝试过这种方法,但我没有得到正确的结果。输出类似于“哔哔哔”。
  • @neo No. 放慢声音会改变音高。所以你会听到“BBEEEEEEEEP”而不是微小的“哔”声。
  • 我想如果你剪掉声音的第一部分。你不会得到“哔哔哔”......这实际上是合成器,音序器如何​​从1秒的声音效果中创建一个长的声音效果。他们从声音材料的一部分而不是整个声音制作一个循环。你可能需要程序来做到这一点。但如果它不支持caf,您可以将其转换为wav,这是一种非常流行的格式,并且大多数工具都支持wav。

标签: ios swift audio avaudioplayer


【解决方案1】:

AVAudioPlayer 有一个rate 属性,可以让您以一半到两倍的速度播放。如果一半有效,您可以使用它。

如果这不起作用,您可以使用AVComposition 从您的声音文件中创建复合音轨。您可以选择声音文件的各个部分,然后随意将它们拼接在一起。

【讨论】:

    猜你喜欢
    • 2018-08-12
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-22
    • 2017-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多