【发布时间】:2016-02-22 03:34:09
【问题描述】:
我正在尝试使用 Swift 中的 AVAudioEngine() 更改声音的音高。这是我的代码:
func setUpEngine() {
let fileString = NSBundle.mainBundle().pathForResource("400", ofType: "wav")
let url = NSURL(fileURLWithPath: fileString!)
do {
try audioFile = AVAudioFile(forReading: url)
print("done")
}
catch{
}
}
var engine = AVAudioEngine()
var audioFile = AVAudioFile()
var audioPlayerNode = AVAudioPlayerNode()
var changeAudioUnitTime = AVAudioUnitTimePitch()
override func viewDidLoad() {
setUpEngine()
let defaults = NSUserDefaults.standardUserDefaults()
audioPlayerNode.stop()
engine.stop()
engine.reset()
engine.attachNode(audioPlayerNode)
changeAudioUnitTime.pitch = 800
engine.attachNode(changeAudioUnitTime)
engine.connect(audioPlayerNode, to: changeAudioUnitTime, format: nil)
engine.connect(changeAudioUnitTime, to: engine.outputNode, format: nil)
audioPlayerNode.scheduleFile(audioFile, atTime: nil, completionHandler: nil)
engine.startAndReturnError(nil)
audioPlayerNode.play()
我的其余代码如下(我确实关闭了括号)。 我在网上找到了大部分这段代码,但我收到了一行错误
engine.startAndReturnError(nil)
'类型的值没有成员'。
当我删除此行时,我收到以下错误:
'AVAudioPlayerNode.mm:333:开始:所需条件为假: _engine->IsRunning() 由于未捕获的异常“com.apple.coreaudio.avfaudio”而终止应用程序,原因:“所需条件为假: _engine->IsRunning()''
任何帮助将不胜感激。我在 xCode 和单视图应用程序中使用 Swift。
【问题讨论】: