向 MPMoviePlayer 添加 Airplay 支持

Posted

技术标签:

【中文标题】向 MPMoviePlayer 添加 Airplay 支持【英文标题】:Adding airplay support to MPMoviePlayer 【发布时间】:2013-08-16 05:51:15 【问题描述】:

您好,我正在构建面向 ios 5 及更高版本的 iOS 应用程序。我正在使用 MPMoviePlayerController 流式传输电影文件。我想给airplay支持的那个播放器。

根据apple documentation

默认电影播放器​​(iOS 4.3 及更高版本)支持无线电影 播放到支持 AirPlay 的硬件,例如 Apple TV。电影 播放器提供了一个控件,允许用户选择 支持 AirPlay 的硬件在此类硬件在范围内时进行播放。

似乎默认情况下,如果任何播放设备在范围内,它将以全屏模式显示播放按钮。但这似乎没有发生。我在电影播放器​​中看不到播放按钮。

我错过了什么吗?请指教。

【问题讨论】:

【参考方案1】:

默认情况下,MPMoviePlayerController 启用 AirPlay 支持。如果您没有将其设置为 FALSE。然后,您可能需要检查您的网络或 AppleTV 的网络连接。它们需要在同一个网络中(通常是 Intranet)。

有一种安全的方法可以检测您的 iOS 设备是否能够找到 AppleTV。你可以双击HOME键,从左向右滑动任务栏,如果能看到“Airplay”路由键,就可以到达了。否则,您需要检查您的 AppleTV 设置以确保 Airplay 功能已启用并且 AppleTV 连接到您的 iOS 设备所在的同一网络。

如果您使用自己定制的视频播放控制器界面,您可以将“Airplay”按钮嵌入到您自己的 UI 中。

MPVolumeView

【讨论】:

感谢您的回答,请问我可以仅使用 Apple TV 测试此功能吗?或者有其他设备或其他方式对其进行测试。 是的,你可以。您可以通过 HDMI 线将您的 iPhone/iPad 连接到电视/显示器,这将与 Apple TV 一样管理(但不完全相同,您将能够检测到 SDK 的差异)。 @abdus.me 你也可以使用AirServer等软件服务。 @HailZhang 你怎么能从 SDK 中检测出标准 Apple TV 使用和 HDMI 电缆之间的区别? @Spail 您可以检查当前音频路由以确定当前正在使用的路由。搜索这个 AVAudioSessionRouteDescription 你会看到更多细节。

以上是关于向 MPMoviePlayer 添加 Airplay 支持的主要内容,如果未能解决你的问题,请参考以下文章

MPMoviePlayer 控制样式条框高度

如何检测 iPhone MPMoviePlayer 控件何时出现/消失?

IPHONE MPMoviePlayer:在播放视频时可以交互的按钮层下播放视频?

如何替换 MPMoviePlayer 通知?

MPMoviePlayer 无法使用 Swift 播放

MPMoviePlayer 完成按钮问题