2016-10-04 80 views
1

我試圖從文檔目錄播放保存錄制文件。問題是AVAudioPlayer只有在完成錄音後纔會播放音樂。 當我運行我的應用程序時,它不會播放音樂。 Xcode中給我的錯誤AVAudioPlayer在應用程序再次運行時不再播放音樂

fatal error: 'try!' expression unexpectedly raised an error: Error Domain=NSOSStatusErrorDomain Code=2003334207 "(null)": file /Library/Caches/com.apple.xbs/Sources/swiftlang/swiftlang-703.0.18.8/src/swift/stdlib/public/core/ErrorType.swift, line 54 

在此行中

self.audioPlayer = try! AVAudioPlayer(contentsOfURL: filePaths[0]) 

我也檢查文件,它存在於目錄,但它不選擇它。任何人都有任何想法我可以解決它。 This是我的演示項目。 感謝

class FirstViewController: UIViewController, AVAudioPlayerDelegate, AVAudioRecorderDelegate{ 

    var soundRecorder : AVAudioRecorder! 
    var audioPlayer : AVAudioPlayer! 
    var filePaths : [NSURL]! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

    } 

    @IBAction func playBt(sender: AnyObject) { 
     if filePaths.count > 0 { 
      //print(soundRecorder.url) 
      print(filePaths[0]) 
      self.audioPlayer = try! AVAudioPlayer(contentsOfURL: filePaths[0]) 
      self.audioPlayer.prepareToPlay() 
      self.audioPlayer.delegate = self 
      self.audioPlayer.play() 
     } 
    } 

}* 
+0

你可以編輯問題以便我們理解問題。這是很難得到什麼問題。 –

+0

我編輯我的問題。 – ZAFAR007

+0

'do {self.audioPlayer = try! AVAudioPlayer(contentsOfURL:filePaths [0])} catch let error {print(error)}'實際上,框架有一些錯誤,它試圖拋出錯誤。您可以檢查錯誤並糾正錯過的內容。 –

回答

2

與代碼的問題是,你正在試圖挽救URL的陣列到UserDefaults。該容器可以隨時更改,因此最好將文件名保存在UserDefaults中,然後使用NSSearchPathForDirectoriesInDomains創建文檔目錄的路徑。

+0

謝謝。現在它工作正常 – ZAFAR007

相關問題