是否可以通过编程方式启用airplay镜像?

时间:2016-06-27 03:30:32

标签: ios xcode swift mirror airplay

我对这个问题进行了很多调查,但我发现的所有问题都已经过时了。

example

this article is from 2012 and says that it's not possible

基本上我希望能够通过airplay将我的iphone镜像到我的应用程序内的另一个屏幕,我想知道现在是否可能。我发现的文章都说不可能,或者如果完成,应用程序商店就不会接受该应用程序。

2 个答案:

答案 0 :(得分:5)

从iOS 11开始,可以实现自己的AirPlay选择器视图。请检查AVRoutePickerView。它允许您控制应用程序内不同AppleTV /外部屏幕的连接。见例:

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    AVRoutePickerView *routePickerView = [[AVRoutePickerView alloc] initWithFrame:CGRectMake(0.0f, 30.0f, 30.0f, 30.0f)];
    routePickerView.backgroundColor = [UIColor lightGrayColor];
    [self.view addSubview:routePickerView];

    AVAsset *asset = [AVAsset assetWithURL:[NSURL URLWithString:@"https://bitdash-a.akamaihd.net/content/MI201109210084_1/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8"]];
    AVPlayerItem *playerItem = [[AVPlayerItem alloc] initWithAsset:asset];
    AVPlayer *player = [AVPlayer playerWithPlayerItem:playerItem];
    AVPlayerLayer *playerLayer = [AVPlayerLayer playerLayerWithPlayer:player];
    [playerLayer setFrame:CGRectMake(0.0f, 40.0f, self.view.frame.size.width, self.view.frame.size.height - 40.0f)];
    [self.view.layer addSublayer:playerLayer];
    [player seekToTime:kCMTimeZero];
    [player play];
}

@end

通过按AVRoutePickerView,您将获得以下内容: enter image description here

按下可用的外部屏幕,您将能够播放其中的内容。

答案 1 :(得分:2)

它仍然不可能。没有用于启用AirPlay的公共API(以及未提交的私人API)。它是一个无法从应用程序操作的系统级功能。

用户必须启动AirPlay,但您只需显示一条消息,建议用户启用AirPlay以增强应用。