【问题标题】:Disable AirPlay with MPMoviePlayerController使用 MPMoviePlayerController 禁用 AirPlay
【发布时间】:2011-10-13 05:18:11
【问题描述】:

我有一个MPMoviePlayerController 的实例,它用于在 iPhone 应用程序上显示一些实时流媒体视频。这工作正常,但我希望删除所有 AirPlay 功能。

可以肯定的是,我像这样专门禁用 AirPlay:

if([self.moviePlayerController respondsToSelector:@selector(setAllowsAirPlay:)]) {
    self.moviePlayerController.allowsAirPlay = NO;
}

但是,即使使用此代码,我仍然在视频控件上看到 AirPlay 图标。如果我选择此选项并选择我的 AppleTV,则仅通过 AirPlay 发送音频 - 视频将继续在应用程序中播放。如果我将allowsAirPlay 设置为YES,视频和音频都会通过AirPlay 发送。

有人知道为什么会这样吗?这是操作系统的一项功能,允许通过 AirPlay 发送音频吗?

【问题讨论】:

  • 你尝试设置useApplicationAudioSession = NO; 吗?
  • 我现在 - 恐怕似乎没有任何区别。
  • 你在设置播放器的内容URL之前设置了allowAirPlay吗?
  • 这是一个相关问题stackoverflow.com/questions/5665336/…
  • 不,因为我正在使用 initWithContentURL 方法来初始化 MPMoviePlayerController。我想我可以试试?

标签: ios objective-c apple-tv airplay


【解决方案1】:

事实证明,AirPlay 图标仍然可见(并且应该保持可见),因此可以将音频路由到任何合适的设备,例如。蓝牙耳机。尝试隐藏图标被认为是不好的做法。

【讨论】:

  • 很老的问题;但是您是否有机会获得支持此功能的 Apple 文档的链接?
  • 抱歉,不,我实际上在他们的一次技术讲座中从一位 Apple 工程师那里得到了答案。如果你从逻辑上考虑它是有道理的。那些想要使用蓝牙耳机或扬声器的人应该始终能够使用它们,因为它们可能有听力障碍等。
  • 谢谢。我认为这是有道理的,只是担心内容许可。
  • @Craig - 对不起,老问题等等。你有没有设法找到任何文件?我即将开始同样的挑战,即使是 WWDC 参考也会很好:)
【解决方案2】:

我知道这是一个老问题,但也许这对其他人有帮助。
苹果有以下api来隐藏路由按钮(AirPlay)

@property (nonatomic) BOOL showsRouteButton NS_AVAILABLE_IOS(4_2);  // Default is YES.

希望这对任何人都有帮助。

【讨论】:

    【解决方案3】:

    @Philip K,您的提示几乎为我解决了这个问题,调试了一些四年前的代码。 showsRouteButton 不是 MPMoviePlayerController 上的属性,我尝试设置:

    myMPMoviePlayer.allowsAirPlay = NO;
    

    但这没有任何作用......

    我们正在为我们的视频播放器使用自定义控件,发现路由按钮是 MPVolumeView 的一部分,您的技巧适用于那里:

    MPVolumeView * vView = [[MPVolumeView alloc] initWithFrame: bounds];
    vView.showsRouteButton = NO;
    

    宾果!谢谢。

    【讨论】:

      猜你喜欢
      • 2014-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-09
      • 2011-04-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多