Swift:Audio播放/停止播放时间越来越迟缓

问题描述:

我有一个简单的应用程序,允许用户录制声音然后播放。但是,我发现保存和删除的录音次数越多,音频播放越慢。这是发生了什么音质的例子:Swift:Audio播放/停止播放时间越来越迟缓

Laggy audio

Normal audio

如果在Xcode我在模拟器退出应用程序,并重新打开它,音频质量恢复正常,但无论出于什么原因转到应用程序中的不同UIViewController,然后回到主屏幕(所以它完全重新加载,并且viewDidLoad()再次运行等)将不会使音频质量恢复正常。

我不知道是什么原因导致音频变得越来越滞后,因为越来越多的录音被制作和删除,我想知道是否有一些代码可以完全重置音频设置。

这基本上是我如何录制音频:

session.setCategory(AVAudioSessionCategoryPlayback,error:nil) 

和录制音频回放的正常方式:

 var recordSettings = [ 
     // AVFormatIDKey: kAudioFormatAppleLossless, 
     AVEncoderAudioQualityKey : AVAudioQuality.Max.rawValue, 
     AVEncoderBitRateKey : 320000, 
     AVNumberOfChannelsKey: 2, 
     AVSampleRateKey : 44100.0 
    ] 


    var session=AVAudioSession.sharedInstance() 
    session.setCategory(AVAudioSessionCategoryPlayAndRecord,error:nil) 
    audioRecorder = AVAudioRecorder(URL: filePathForRecordedAudio, settings: recordSettings, error:nil) 
    audioRecorder.delegate = self 
    audioRecorder.meteringEnabled=true 
    audioRecorder.prepareToRecord() 
    audioRecorder.record() 

然后,当记录是由我运行该用户停止:

var player:AVAudioPlayer = AVAudioPlayer() 
player = AVAudioPlayer(contentsOfURL: NSURL(string: "\(locationOfRecordedAudio)"), error: nil) 
player.play() 
+0

您是如何解决您的问题的? – SwiftArchitect

您可能正在添加运行时线程。

audioRecorder.stop()