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

标签 ios swift avaudioplayer avplayer

我正在使用以下代码从 Internet 的 URL 播放声音:

var audioPlayer = AVPlayer()

...

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

我试图确保它在后台继续播放,这就是我使用“AVAudioSession.sharedInstance()”的原因。当我通过锁定屏幕在模拟器中试用它时,它一直按预期播放。但是如果我在设备上播放它,一旦屏幕自动显示或我自己将其锁定,声音就会关闭。

我的代码中缺少什么?

最佳答案

swift 2+ 解决方案:

audio

do {
  try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
  try AVAudioSession.sharedInstance().setActive(true)
} catch _ {
  return print("error")
}

关于ios - Swift:设备锁定时继续播放声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30832352/

相关文章:

ios - 长 UIButton 标题标签在中心而不是在右侧截断

c++ - 为 arm64 iPhone 编译 xcode 5 失败

ios - 更改结构的值无效

ios - 获取 NSUserDefaults Nil 对象

swift - 如何在 Xcode、Swift 中使用按钮创建相同的对象

ios - 如何使用 Swift 在 iOS 中为不同的通知响应播放单独的音频?

objective-c - 在后台播放一系列音频文件

ios - UIPinchGestureRecognizer 捏合捏合后获取原始图像大小

ios - 如何使用 UIActivityItemProvider 设置邮件主题

iOS 5 - AVAPlayer 不再工作