use*_*193 22 ios swift avaudioengine avaudioplayernode
背景 - 我在Apple最近的WWDC发布的视频列表中看到了一个名为"AVAudioEngine in Practice"的视频,用于将音效应用于音频. https://developer.apple.com/videos/wwdc/2014/
之后,我成功地使用以下代码更改了音频的音高:
//Audio Engine is initialized in viewDidLoad()
audioEngine = AVAudioEngine()
//The following Action is called on clicking a button
@IBAction func chipmunkPlayback(sender: UIButton) {
var pitchPlayer = AVAudioPlayerNode()
var timePitch = AVAudioUnitTimePitch()
timePitch.pitch = 1000
audioEngine.attachNode(pitchPlayer)
audioEngine.attachNode(timePitch)
audioEngine.connect(pitchPlayer, to: timePitch, format: myAudioFile.processingFormat)
audioEngine.connect(timePitch, to: audioEngine.outputNode, format: myAudioFile.processingFormat)
pitchPlayer.scheduleFile(myAudioFile, atTime: nil, completionHandler: nil)
audioEngine.startAndReturnError(&er)
pitchPlayer.play()
}
Run Code Online (Sandbox Code Playgroud)
据我所知,我使用AudioEngine将AudioPlayerNode与AudioEffect连接,而AudioEffect又连接到Output.
我现在很想知道为音频添加多种音效.例如,音高变化和混响.我该如何为音频添加多种音效?
另外,在viewDidLoad中附加和连接节点是否有意义,而不是我在IBAction中如何完成它?
Gen*_*isa 13
只需连接它们.
engine.connect(playerNode, to: reverbNode, format: format)
engine.connect(reverbNode, to: distortionNode, format: format)
engine.connect(distortionNode, to: delayNode, format: format)
engine.connect(delayNode, to: mixer, format: format)
Run Code Online (Sandbox Code Playgroud)
背景 - 我从Udacity发布的以下视频列表中看到了一个标题为"全部放在一起 - 使用Swift介绍iOS App开发"的视频,以将音效应用于音频.
之后,我成功地使用以下代码更改了音频的音高:
func playAudioWithVariablePith(pitch: Float){
audioPlayer.stop()
audioEngine.stop()
audioEngine.reset()
let audioPlayerNode = AVAudioPlayerNode()
audioEngine.attachNode(audioPlayerNode)
let changePitchEffect = AVAudioUnitTimePitch()
changePitchEffect.pitch = pitch
audioEngine.attachNode(changePitchEffect)
audioEngine.connect(audioPlayerNode, to: changePitchEffect, format: nil)
audioEngine.connect(changePitchEffect, to: audioEngine.outputNode, format: nil)
audioPlayerNode.scheduleFile(audioFile, atTime: nil, completionHandler: nil)
try! audioEngine.start()
audioPlayerNode.play()
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10896 次 |
最近记录: |