Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios AVAudioPlayer可以';t在屏幕关闭时打开音频。错误:错误域=NSOSStatusErrorDomain代码=-54_Ios_Swift_Iphone - Fatal编程技术网

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数组,并在它们之间切换。“好吗?”马特,我查过了。它起作用了。