2016-07-28 120 views
0

我试图记录正在动态生成本地音频文件的音频输出。iOS:记录动态音频播放

所以我们可以说我有一个音频文件“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

我使用AmazingAudioEngine解决了这个问题。像挖掘示例应用程序一样的魅力

+0

很高兴你做到了。这是一个高质量的开源音频API的例子,值得借鉴。 – user3078414