再次应用 运行 时,AVAudioPlayer 不再播放音乐
AVAudioPlayer not Play Music again when app run again
我正在尝试从文档目录播放保存的录音文件。问题是 AVAudioPlayer
只在完成录音后第一次播放音乐。
当我 运行 我的应用程序启动时它不播放音乐。
Xcode 给我那个错误
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()
}
}
}*
代码的问题是您试图将 URL
的数组保存到 UserDefaults
。容器可以随时更改,因此最好将文件名保存在 UserDefaults
中,然后使用 NSSearchPathForDirectoriesInDomains
.
创建文档目录的路径
我正在尝试从文档目录播放保存的录音文件。问题是 AVAudioPlayer
只在完成录音后第一次播放音乐。
当我 运行 我的应用程序启动时它不播放音乐。
Xcode 给我那个错误
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()
}
}
}*
代码的问题是您试图将 URL
的数组保存到 UserDefaults
。容器可以随时更改,因此最好将文件名保存在 UserDefaults
中,然后使用 NSSearchPathForDirectoriesInDomains
.