Swift:在设备锁定时继续播放声音

MXV*_*MXV 1 avaudioplayer ios avplayer swift

我正在使用以下代码从互联网上播放网址声音:

var audioPlayer = AVPlayer()
Run Code Online (Sandbox Code Playgroud)

...

let audioSession = AVAudioSession.sharedInstance()
audioSession.setCategory(AVAudioSessionCategoryAmbient, error: nil)

let url = trackFileName
let playerItem = AVPlayerItem( URL:NSURL( string:url ) )
audioPlayer = AVPlayer(playerItem:playerItem)
audioPlayer.rate = 1.0;
player.play()
Run Code Online (Sandbox Code Playgroud)

我正在努力确保它继续在后台播放,这就是我使用"AVAudioSession.sharedInstance()"的原因.当我通过锁定屏幕在模拟器中尝试它时,它会继续像它应该的那样播放.但是如果我在一个设备上播放它,一旦屏幕自动看起来或者我自己锁定声音就会关闭声音.

我的代码中缺少什么?

fat*_*han 5

swift 2+解决方案:

音频

do {
  try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
  try AVAudioSession.sharedInstance().setActive(true)
} catch _ {
  return print("error")
}
Run Code Online (Sandbox Code Playgroud)