iOS:录制动态音频播放

时间:2016-07-28 22:58:23

标签: ios audio core-audio audiounit

我正在尝试录制由本地音频文件动态生成的音频输出。

所以,假设我有一个音频文件“drums.mp3”,我现在正在播放这样的循环:

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...
    }
}

当我尝试添加AVAudioRecorder功能时,它似乎只能从麦克风录制,而不是我正在生成的音频...从我在互联网上发现的似乎AVFoundation只能录制从麦克风,所以这不是我的方案的正确选择。 This示例似乎很有希望,但我根本不知道如何从中创建一个可用的示例应用程序。我知道这个问题很通用,但也许有人可以给我一个暗示呢?

非常感谢。

1 个答案:

答案 0 :(得分:1)

我使用AmazingAudioEngine解决了这个问题。像曾经深入到示例应用程序中的魅力一样工作