Ios AVAudioPlayer可以';t在屏幕关闭时打开音频。错误:错误域=NSOSStatusErrorDomain代码=-54
当当前音频结束时,我尝试播放下一个音频。我捕获Ios AVAudioPlayer可以';t在屏幕关闭时打开音频。错误:错误域=NSOSStatusErrorDomain代码=-54,ios,swift,iphone,Ios,Swift,Iphone,当当前音频结束时,我尝试播放下一个音频。我捕获audioplayerdfinishplaying。 当iPhone屏幕打开时,它工作正常。 如果我关闭屏幕,当我试图通过AVAudioPlayer打开下一个音频时,我会收到错误error Domain=nsossstatuserrordomain code=-54 func audioplayerdIDfinishplay(player:AVAudioPlayer,成功标记:Bool){ 如果旗{ 做{ player=尝试AVAudioPlayer
audioplayerdfinishplaying
。
当iPhone屏幕打开时,它工作正常。
如果我关闭屏幕,当我试图通过AVAudioPlayer
打开下一个音频时,我会收到错误error Domain=nsossstatuserrordomain code=-54
func audioplayerdIDfinishplay(player:AVAudioPlayer,成功标记:Bool){
如果旗{
做{
player=尝试AVAudioPlayer(内容:url)
}抓住{
打印(错误)
}
}
}
我必须使用AVAudioPlayer
,因为它支持播放速率,但不支持在睡眠设备模式下创建AVAudioPlayer实例。
我的解决方案是在设备睡眠之前创建AVAudioPlayer阵列。
当前音频完成后,您应该从存储阵列中获取下一个实例
你可以查一下
let players=[AVAudioPlayer]()
设指数=0
做{
玩家=[
尝试AVAudioPlayer(内容:url1),
尝试AVAudioPlayer(内容:url2),
尝试AVAudioPlayer(内容:url3)
]
}抓住{
打印(错误)
}
玩家[索引].play()
func audioPlayerDidFinishPlaying(uPlayer:AVAudioPlayer,成功标记:Bool){
如果旗{
指数+=1
玩家[索引].play()
}
}
您不能在后台启动播放,包括锁定屏幕。你只能继续已经播放的内容(如果你被配置为后台播放)。我看到了一个解决方案,可以在屏幕打开时制作AVAudioPlayer数组,并在它们之间切换。“好吗?”马特,我查过了。它起作用了。