首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift AVPlayerViewController添加AirPlay

Swift AVPlayerViewController添加AirPlay
EN

Stack Overflow用户
提问于 2017-02-07 19:33:54
回答 2查看 6K关注 0票数 6

我正在尝试用我的AirPlay启用AVPlayerViewController。在文件中:

https://developer.apple.com/reference/avkit/avplayerviewcontroller

它说

AVPlayerViewController自动支持AirPlay,但在应用程序中启用它之前,您需要执行一些项目和音频会话配置。

Capabilities选项卡下,我启用了“图片中的音频、AirPlay和图片的背景模式”。我按照以下方式创建了AVPlayerViewController

代码语言:javascript
复制
// 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()
})

我以为这两条线

代码语言:javascript
复制
moviePlayer.allowsExternalPlayback = true
moviePlayer.usesExternalPlaybackWhileExternalScreenIsActive = true

会添加AirPlay支持,但我错了。我读过AirPlay可以通过添加MPVolumeView来使用,但这是一个定制的视频控制器,而不是内置的视频控制器。任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

发布于 2018-03-17 00:53:33

您仍然应该能够使用MPVolumeView。只需使用以下内容:

代码语言:javascript
复制
    let volumeView = MPVolumeView()
    self.view.addSubview(volumeView)

或者,如果您只希望菜单显示,您可以使用:

代码语言:javascript
复制
    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
        }
    }

这将把它放在当前视图之外,然后触发显示“空中播放”菜单的操作。

票数 3
EN

Stack Overflow用户

发布于 2022-05-26 16:05:45

现在你做这件事应该没问题。

(1)在Capabilities选项卡下,启用音频背景模式

(2)与你

代码语言:javascript
复制
var ezPlayer: AVPlayerViewController!

只是

代码语言:javascript
复制
    ezPlayer.showsPlaybackControls = true
    ezPlayer.player = AVPlayer(url: ... )

    ezPlayer.player!.allowsExternalPlayback = true
    ezPlayer.player!.usesExternalPlaybackWhileExternalScreenIsActive = 

你应该没事的。构建成一个装置。假设你在一个可用的wifi网络上,有一台苹果电视,苹果笔记本电脑,播放图标就会出现并正常工作。

现在没有必要使用MPVolumeView了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42098404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档