ios - 如何在iOS上正确播放后台音频?

标签 ios swift streaming avfoundation

我正在尝试构建一个广播流应用程序。我已经为可能的 RadioPlayer 创建了一个 Singleton 类,如下所述,并且我已经打开了“背景模式”>“音频”、“AirPlay”和“画中画”。

但是,当我的应用程序进入后台模式时,音频停止播放。我在这里缺少什么?

感谢任何帮助!谢谢!

import Foundation
import AVFoundation

class RadioPlayer {

  static let sharedInstance = RadioPlayer()

  var player = AVPlayer(playerItem: RadioPlayer.radioPlayerItem())
  var isPlaying = false

  class func radioPlayerItem() -> AVPlayerItem {
    return AVPlayerItem(URL: urlRadio())
  }

  class func urlRadio() -> NSURL {
    let roRadio = Repository.realm.objects(RORadio)
    let url: NSURL = NSURL(string: roRadio[0].streaming)!
    return url
  }

  func toggle() {
    if isPlaying == true {
      pause()
    } else {
      play()
    }
  }

  func play() {
    player.play()
    isPlaying = true
  }

  func pause() {
    player.pause()
    isPlaying = false
  }

  func currentlyPlaying() -> Bool {
    return isPlaying
  }
}

最佳答案

应允许应用程序在后台继续运行。打开 Info.plist 文件并添加 UIBackgroundModes 的键。对于您的目标来说,只有一个字符串“音频”。

关于ios - 如何在iOS上正确播放后台音频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37036742/

相关文章:

arrays - “数组”不可用 : please construct an Array from your lazy sequence: Array(. ..) 错误

linux - Transport Stream 流媒体服务器的要求

Qt 通过 HTTP 流式处理大文件并刷新到 eMMC 闪存

ios - 在 iOS 上实现机器学习算法

android - 动感固件更新

iOS:在 WebView 中播放嵌入式剪辑时静音

amazon-web-services - 在 Parquet 文件中将数据流式传输到 S3 时 DynamoDB 的删除和更新

ios - 如何更改我的 UICollectionViewCell 中的属性?

ios - 后台联网进程

ios - Swift for iOS 中的自定义分段控件