我正在使用AVPlayer播放来自网址的音频。一切都按预期工作,直到APP进入后台或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()
答案 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。