允许 AirPlay 支持和 iOS 4.2、iOS 4.3

Posted

技术标签:

【中文标题】允许 AirPlay 支持和 iOS 4.2、iOS 4.3【英文标题】:allowsAirPlay support and iOS 4.2, iOS4.3 【发布时间】:2011-03-21 05:01:31 【问题描述】:

我正在开发一个希望支持 Air Play 的 iPhone 应用程序。我的应用程序应该能够在 ios 4.1 及更高版本的 iPhone 设备上运行。因此,我在我的应用程序的目标设置中选择了 iOS 4.3 作为基础 SDK 和 4.1 作为部署目标。 现在,我想在 MPMoviePlayerController 上添加设置标志 allowedAirPlay 的代码。这仅在 iOS 4.3 SDK 中受支持。 XCode 应用程序目标设置应该是什么以及应该如何编写代码以便

    在未安装 iOS 4.3 SDK 的系统中也可以编译。 它可以在所有 iOS > 4.1 的 iPhone 设备上正常运行 在装有 iOS 4.3 的 iPhone 设备中,Air Play 功能已启用。

【问题讨论】:

【参考方案1】:

您需要通过在实现文件顶部的类别中声明方法来消除编译器警告:

@interface MPMoviePlayerController(MEKAirPlay)
- (void)setAllowsAirPlay:(BOOL)supports;
@end

然后,在调用之前检查该方法是否实际实现:

if ([player respondsToSelector:@selector(setAllowsAirPlay:)]) 
  [player setAllowsAirPlay:YES];

您还可以将类别定义包装在预处理器#if 中,以防止在使用 iOS 4.3 SDK 编译时看到它,尽管我没有这样做。我没有安装早期的 SDK,所以我无法真正测试。

【讨论】:

【参考方案2】:

我做了如下:

#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_4_2
        mMoviePlayerController.allowsAirPlay = YES;        
#endif

它工作正常。可以调整这两个答案之一。

【讨论】:

以上是关于允许 AirPlay 支持和 iOS 4.2、iOS 4.3的主要内容,如果未能解决你的问题,请参考以下文章

将 iOS 设备变成 AirPlay 扬声器

向 MPMoviePlayer 添加 Airplay 支持

iOS 上的 AirPlay 是不是有任何指南

如何在 iOS 上管理多个 Airplay 接收器?

iOS - 如何在 Swift 中显示“AirPlay”弹出菜单?

我可以在 iOS 4.3 中使用 AirPlay 将静止图像发送到 Apple TV