AVPlayer在后台停止

时间:2015-08-24 15:42:50

标签: ios avplayer swift2

我正在使用AVPlayer播放来自网址的音频。一切都按预期工作,直到APP进入后台或iPhone进入睡眠模式。

如何防止这种情况发生。

我已添加到info.plist:

enter image description here

这是我的代码。

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()

1 个答案:

答案 0 :(得分:3)

我认为您忘记将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
}

可以找到有关 AVAudioSession 的更多信息here