我正在尝试用我的AirPlay启用AVPlayerViewController。在文件中:
https://developer.apple.com/reference/avkit/avplayerviewcontroller
它说
AVPlayerViewController自动支持AirPlay,但在应用程序中启用它之前,您需要执行一些项目和音频会话配置。
在Capabilities选项卡下,我启用了“图片中的音频、AirPlay和图片的背景模式”。我按照以下方式创建了AVPlayerViewController:
// Create the view controller and player
let moviePlayerViewController: AVPlayerViewController = AVPlayerViewController()
let moviePlayer = AVPlayer(url: videoUrl!)
moviePlayer.allowsExternalPlayback = true
moviePlayer.usesExternalPlaybackWhileExternalScreenIsActive = true
// Initialize the AVPlayer
moviePlayerViewController.player = moviePlayer
// Present movie player and play when completion
self.present(moviePlayerViewController, animated: false, completion: {
moviePlayerViewController.player?.play()
})我以为这两条线
moviePlayer.allowsExternalPlayback = true
moviePlayer.usesExternalPlaybackWhileExternalScreenIsActive = true会添加AirPlay支持,但我错了。我读过AirPlay可以通过添加MPVolumeView来使用,但这是一个定制的视频控制器,而不是内置的视频控制器。任何帮助都将不胜感激。
发布于 2018-03-17 00:53:33
您仍然应该能够使用MPVolumeView。只需使用以下内容:
let volumeView = MPVolumeView()
self.view.addSubview(volumeView)或者,如果您只希望菜单显示,您可以使用:
let volumeView = MPVolumeView(frame: CGRect(x: -100, y: 0, width: 0, height: 0))
self.addSubview(volumeView)
for view: UIView in volumeView.subviews {
if let button = view as? UIButton {
button.sendActions(for: .touchUpInside)
volumeView.removeFromSuperview()
break
}
}这将把它放在当前视图之外,然后触发显示“空中播放”菜单的操作。
发布于 2022-05-26 16:05:45
现在你做这件事应该没问题。
(1)在Capabilities选项卡下,启用音频背景模式
(2)与你
var ezPlayer: AVPlayerViewController!只是
ezPlayer.showsPlaybackControls = true
ezPlayer.player = AVPlayer(url: ... )
ezPlayer.player!.allowsExternalPlayback = true
ezPlayer.player!.usesExternalPlaybackWhileExternalScreenIsActive = 你应该没事的。构建成一个装置。假设你在一个可用的wifi网络上,有一台苹果电视,苹果笔记本电脑,播放图标就会出现并正常工作。
现在没有必要使用MPVolumeView了。
https://stackoverflow.com/questions/42098404
复制相似问题