2016-07-28 32 views
0

Ich versuche Audioausgabe aufzuzeichnen, die aus lokalen Audiodateien dynamisch generiert wird.iOS: dynamische Audiowiedergabe aufnehmen

Also lassen Sie uns sagen, dass ich eine Audio-Datei „drums.mp3“ haben, und ich bin derzeit in einer Schleife wie folgt spielen:

var drumSoundEffect: AVAudioPlayer! 
var repeatTimer: NSTimer! 
var url: NSURL! 
let soundInterval: NSTimeInterval = 1 

@IBAction func playSoundTapped(sender: AnyObject) { 
    initSound() 
    initAndStartTimer() 
}  

func initSound() { 
    let path = NSBundle.mainBundle().pathForResource("drums.mp3", ofType: nil)! 
    url = NSURL(fileURLWithPath: path); 
} 

func initAndStartTimer() { 
    repeatTimer = NSTimer.scheduledTimerWithTimeInterval(soundInterval, target: self, selector: #selector(playSound), userInfo: nil, repeats: true) 
    repeatTimer.fire() 
} 

func playSound() { 
    do { 
     let sound = try AVAudioPlayer(contentsOfURL: url) 
     drumSoundEffect = sound 
     sound.play() 
    } catch { 
     //an error occurred... 
    } 
} 

Wenn ich versuche, die AVAudioRecorder Funktionen hinzuzufügen, wie es scheint es NUR Aufnahme vom Mikrofon, und nicht von dem Ton, den ich erzeuge ... Aus dem, was ich im Internet gefunden habe, scheint AVFoundation nur in der Lage zu sein, vom Mikrofon aufzunehmen, also ist das nicht die richtige Wahl für mein Szenario. This Beispiel scheint ziemlich vielversprechend zu sein, aber ich habe einfach keine Ahnung, wie man daraus eine funktionierende Beispiel-App erstellt. Ich weiß, dass diese Frage ziemlich generisch ist, aber vielleicht könnte mir jemand einen Hinweis darauf geben?

Vielen Dank.

Antwort

1

Ich löste dies mit der AmazingAudioEngine. Funktioniert wie ein Zauber, wenn Sie einmal in die Beispiel-App eintauchen.

+0

Froh, dass Sie es getan haben. Es ist ein Beispiel für eine hochwertige Open-Source-Audio-API, von der es sich lohnt, zu lernen. – user3078414