2014-09-06 4 views
11

Attualmente sto cercando di far funzionare il nuovo motore audio di Apple con la mia configurazione audio corrente. In particolare, sto cercando di cambiare il tono con Audio Engine, che a quanto pare è possibile secondo this post.Utilizzo del nuovo AudioEngine di Apple per modificare il suono di Pitch of AudioPlayer

Ho anche esaminato altre soluzioni per la modifica del pitch, tra cui Dirac e ObjectAL, ma sfortunatamente entrambe sembrano essere piuttosto incasinate in termini di utilizzo di Swift, che sto utilizzando.

La mia domanda è come posso cambiare il tono di un file audio utilizzando il nuovo motore audio di Apple. Sono in grado di riprodurre suoni utilizzando AVAudioPlayer, ma non riesco a capire come si fa riferimento al file in audioEngine. Nel codice della pagina collegata c'è un 'formato' che si riferisce al file audio, ma non riesco a capire come creare un formato o cosa faccia.

sto giocando suoni con questo semplice codice:

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

risposta

14

si utilizza un AVAudioPlayerNode, non un AVAudioPlayer.

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

Quindi è possibile collegare un 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)) 
+0

Non ha senso per me. Dove posso dire il file che voglio riprodurre? – charlesrockbass

+0

scheduleFile è la funzione da utilizzare. https://developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVAudioPlayerNode_Class/index.html#//apple_ref/occ/cl/AVAudioPlayerNode –