iOS 版本的 AirPlay 图标不同

AirPlay icon differs with iOS versions

我正在将 AirPlay 集成到我的应用程序中。我们目前支持 iOS 11-13。在 iOS 13 上,当我连接到 AppleTV 时,我看到了预期的 AirPlay 图标(横向矩形,箭头指向内部)。当我使用 iOS 12 设备并连接到同一个 AppleTV 时,我看到了看起来像音频图标的东西(带有圆圈阵列的箭头)。

我的 AirPlay 图标代码看起来像

let button = AVRoutePickerView(frame: frame)
button.delegate = self
button.tintColor = .white
button.activeTintColor = .white

if #available(iOS 13.0, *) {
  button.prioritizesVideoDevices = true
}

addSubview(button)

并且我已将以下条目添加到我们的 plist 文件中:

AirPlay optimization policy : String : Long Form Video

最后,我在 AVAudioSession.sharedInstance() 应用程序服务上设置 .playback & .moviePlayback

class AudioSessionService : NSObject, ApplicationService {

  static func configureAudioSession() {
    do {
      try AVAudioSession.sharedInstance().setCategory(.playback, mode: .moviePlayback)
    } catch {}
  }

  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
    AudioSessionService.configureAudioSession()

    return true
  }

}

我在 Apple 的文档中找不到任何关于此的内容。有什么建议吗?

Apple 会定期更新其设计,这似乎是 Airplay 在 iOS 12 和 iOS 13 之间发生的事情。 我找不到专门关于此事的资源,但由于您的代码非常标准,并且您依赖 AVRoutePicker,所以您没有做错 :)