iOS 在应用启动期间检测隔空播放



我们正在构建一个iOS应用程序,用户可以在其中以订阅模式观看视频。

我们不希望用户将视频隔空播放到任何其他设备。

视频正在UIWebView中播放。

我查看了各种在线资源:

  1. https://developer.apple.com/documentation/uikit/uiwebview/1617973-mediaplaybackallowsairplay?language=objc

  2. https://github.com/MobileVet/AirPlayDetector

上述选项不起作用。

另外,我尝试了这段代码,但它总是返回 1。

if ([[UIScreen screens] count] < 2)) {
//streaming
}
else {
//mirroring
}

我也尝试过这段代码:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiveAirPlayNotification:) name: UIScreenDidConnectNotification object:nil];

此通知系统仅在我启动应用程序然后打开Airplay时有效。如果我打开Airplay然后启动应用程序,则不会检测到任何内容。

我需要检测应用程序启动时镜像是否打开。我已经看到其他应用程序这样做,所以我相信这是可能的。

请帮忙。

试试这个解决方案。

- (BOOL)isAirplayOn
{
AVAudioSession* audioSession = [AVAudioSession sharedInstance];
AVAudioSessionRouteDescription* currentRoute = audioSession.currentRoute;
for (AVAudioSessionPortDescription* outputPort in currentRoute.outputs){
if ([outputPort.portType isEqualToString:AVAudioSessionPortAirPlay])
return YES;
}
return NO;
}

最新更新