gpt4 book ai didi

swift - 使用 Apple 的新 AudioEngine 改变 AudioPlayer 声音的音调

转载 作者:IT王子 更新时间:2023-10-29 05:30:19 24 4
gpt4 key购买 nike

我目前正在尝试让 Apple 的新音频引擎与我当前的音频设置一起工作。具体来说,我正在尝试使用音频引擎更改音高,根据 this post 这显然是可能的.

我还研究了其他音高改变解决方案,包括 Dirac 和 ObjectAL,但不幸的是,就我正在使用的 Swift 而言,这两个解决方案似乎都一团糟。

我的问题是如何使用 Apple 的新音频引擎更改音频文件的音调。我可以使用 AVAudioPlayer 播放声音,但我不知道音频引擎中是如何引用该文件的。在链接页面上的代码中,有一个引用音频文件的“格式”,但我不知道如何创建格式或它的作用。

我正在用这个简单的代码播放声音:

let path = NSBundle.mainBundle().pathForResource(String(randomNumber), ofType:"m4r")
let fileURL = NSURL(fileURLWithPath: path!)
player = AVAudioPlayer(contentsOfURL: fileURL, error: nil)
player.prepareToPlay()
player.play()

最佳答案

您使用的是 AVAudioPlayerNode,而不是 AVAudioPlayer。

engine = AVAudioEngine()
playerNode = AVAudioPlayerNode()
engine.attachNode(playerNode)

然后你可以附加一个 AVAudioUnitTimePitch。

var mixer = engine.mainMixerNode;
auTimePitch = AVAudioUnitTimePitch()
auTimePitch.pitch = 1200 // In cents. The default value is 1.0. The range of values is -2400 to 2400
auTimePitch.rate = 2 //The default value is 1.0. The range of supported values is 1/32 to 32.0.
engine.attachNode(auTimePitch)
engine.connect(playerNode, to: auTimePitch, format: mixer.outputFormatForBus(0))
engine.connect(auTimePitch, to: mixer, format: mixer.outputFormatForBus(0))

关于swift - 使用 Apple 的新 AudioEngine 改变 AudioPlayer 声音的音调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25704923/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com