AVPlayer 在后台停止

AVPlayer stops on background

我正在使用 AVPlayer 播放来自 URL 的音频。一切都按预期工作,直到应用程序进入后台或 iphone 进入睡眠模式。

我怎样才能防止这种情况发生。

我已经添加到 info.plist:

这是我的代码。

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

    let playTrackID = tracks[indexPath.row].trackID

    let urlString = url
    let url = NSURL(string: urlString)!

    avPlayer = AVPlayer(URL:url)

    avPlayer.play()

}

有什么想法吗?

更新:已解决@Danil Gontovnik

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

    let playTrackID = tracks[indexPath.row].trackID

    let urlString = url
    let url = NSURL(string: urlString)!

    do {

        avPlayer = AVPlayer(URL:url)

        try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
        try AVAudioSession.sharedInstance().setActive(true)

    }

    catch {

        print("Something bad happened. Try catching specific errors to narrow things down")
    }


    avPlayer.play()

我认为您忘记将 AVAudioSession 设置为活动状态。尝试添加此代码:

var categoryError: NSError?
AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, error: &categoryError)

if categoryError != nil {
    // Handle error
}

var activeError: NSError?;
AVAudioSession.sharedInstance().setActive(true, error: &activeError)

if activeError != nil {
    // Handle error
}

有关 A​​VAudioSession 的更多信息,请参见 here