2015-04-12 156 views
1

我有一個簡單的應用程序,允許用戶錄製聲音然後播放。但是,我發現保存和刪除的錄音次數越多,音頻播放越慢。這是發生了什麼音質的例子: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

回答

0

您可能正在添加運行時線程。

audioRecorder.stop()