无法播放AVAudioPlayer中的文件

我有一个应用程序的文件文件夹上的文件,我想玩它。

if NSFileManager.defaultManager().fileExistsAtPath(pathString) { let url = NSURL(fileURLWithPath:pathString, isDirectory: false) do { let player = try AVAudioPlayer(contentsOfURL:url) player.prepareToPlay() player.play() } catch let error as NSException { print(error) } catch {} } 

文件系统上有一个文件,我检查了它的存在。 同样所有在do块中的行都被执行。 没有exception也没有错误,仍然没有声音播放。 什么是可能的问题,我该如何解决?

您应该使audioPlayer成为全局实例variables。 这段代码会在调用.play()之后立即释放它。

 class ViewController: UIViewController { var audioPlayer = AVAudioPlayer() override func viewDidLoad() { super.viewDidLoad() if NSFileManager.defaultManager().fileExistsAtPath(pathString){ let url = NSURL(fileURLWithPath:pathString, isDirectory: false) AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, error: nil) AVAudioSession.sharedInstance().setActive(true, error: nil) var error:NSError? audioPlayer = AVAudioPlayer(contentsOfURL: url, error: &error) audioPlayer.prepareToPlay() audioPlayer.play() } } }