Airplay:从MPMoviePlayerController播放电影只会将音频流到Apple TV

4

设置Airplay非常容易。

 self.moviePlayer = [[[MPMoviePlayerViewController alloc] initWithContentURL:url] autorelease];
 [self.moviePlayer setAllowsAirPlay:YES];

然而,当我尝试播放视频时,只有音频被流传。视频仍在iPad上播放。 此外,Airplay控制器只在源列表中显示“仅音频”图标(见图片)。
这让我觉得iOS认为只有音频正在播放。 我的设备上有其他几个带有Airplay的应用程序,它们可以正常工作。我已经关闭并重新开启了Apple TV和iPad。iPad和Apple TV都安装了最新的操作系统。视频正在逐步下载,但在iPad上播放得很完美。 有任何想法吗?

渐进式下载的内容是否也可以通过AirPlay进行流媒体传输,或者这可能会成为阻碍因素吗? - Till
我在网上看到了各种报告,说可能需要对设备进行硬重启,如果你还没有使用AirPort Express,则可能会获得更好的结果。我有完全相同的烦恼,因为我发现只有经过Apple批准的应用程序(例如Youtube)适用于我的设置,而我的自己开发的正确启用AirPlay的应用程序却导致像您的问题一样看到扬声器。我的直觉是,苹果还没有告诉我们所有人有关信息- 我认为它对视频编码挑剔,但到目前为止我的实验并没有改变任何东西。 - Roger
@Till 逐步流式传输内容被列为 iOS 编程指南中支持的内容。 - Corey Floyd
@Roger 我正在使用最新版本的Airport Extreme,并已经进行了所有重新启动。我也认为编码与此有关。但正如你所说,我没有看到任何限制。而且我觉得很奇怪的是iPad可以播放Apple TV无法播放的内容。 - Corey Floyd
@Corey感谢您的再次检查并让我们知道 - 我也猜测这是一个编码问题。最后的办法是:仔细分析可流式传输的内容,并找到使其正常工作的一两个位。 - Till
你的视频是什么格式? - Todd Hopkinson
3个回答

0

Airplay 支持的格式 包括(通过 Apple):

  • H.264 视频与 AAC 音频 HTTP
  • 流式传输,包括实时和点播内容
  • 渐进式下载内容
  • 本地内容

对于基于 Web 的内容,您可以按照以下方式在 QuickTime 插件或 HTML5 视频元素中启用 AirPlay 视频:

QT 插件:

airplay="allow"
airplay="deny" (Default)
For example: <embed src="movie.mov" width="320" height="240" airplay="allow">

HTML5视频元素:

x-webkit-airplay="allow"
x-webkit-airplay="deny" (Default)

0

请确保使用的 iOS 版本为 4.3 或更高。4.2.x 对 -setAllowsAirPlay 方法有响应,但实际上并没有正常工作。官方支持 AirPlay 的 iOS 版本是 4.3。我在测试 4.2.x 设备时发现了这个仅限于音频的 bug。


0

因此,不太美观的答案是iOS 5解决了这些问题。

我发现某些操作系统和设备的组合会导致此问题:特别是iPhone 4上的iOS 4。

如果您遇到问题,请安装iOS 5。截至本篇文章发布时,有一篇最近的文章引用苹果的声明,宣布iOS 5已经在符合条件(3Gs及以上)的设备中渗透了约30%。由于其发布时间仅为1周,我不太关心解决像我上面提到的边缘情况。

显然,这是Airplay iOS 4版本中的一个错误,目前iOS 4版本不太可能更新以修复该错误。因此,现在我称其为已解决。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接