需求:
1、投射airplay后,有些页面或播放状态没有权限投射时,需要修改第二屏内容;
2、游戏时airplay后,iPhone当成手柄使用;
原来:
获取第二屏幕信息--->创建一个新的Window--->将新的Window对应的Screen屏幕设置为第二屏幕--->设置新的屏幕的UI显示。
获取第二屏幕信息
@discardableResult public func connectExternalScreen() -> Bool{ if UIScreen.screens.count > 1 { for screen in UIScreen.screens { if screen != UIScreen.main {//获取第二屏幕信息 self.didConnectExternalScreen(externalScreen: screen) return true } } } return false }
创建一个新的Window--->将新的Window对应的Screen屏幕设置为第二屏幕--->设置新的屏幕的UI显示。
fileprivate func didConnectExternalScreen(externalScreen: UIScreen) { if externalViewController == nil {//设置新的屏幕的UI显示。 let viewController = UIViewController() externalViewController = viewController } if externalWindow == nil { let window = UIWindow(frame: externalScreen.bounds)//创建一个新的Window externalWindow = window externalWindow?.rootViewController = externalViewController externalWindow?.isHidden = false } externalScreenStatus = .connected externalWindow?.screen = externalScreen//将新的Window对应的Screen屏幕设置为第二屏幕 NotificationCenter.default.post(name: NSNotification.Name.ExternalScreenDidConnected, object: nil) }
第二屏的状态监听:
extension ExternalScreenManager { public func beginObserveExternalScreen() { connectExternalScreen() NotificationCenter.default.addObserver(self, selector: #selector(self.externalScreenDidConnect(_:)), name: NSNotification.Name.UIScreenDidConnect, object: nil) NotificationCenter.default.addObserver(self, selector: #selector(self.externalScreenDidDisconnect(_:)), name: NSNotification.Name.UIScreenDidDisconnect, object: nil) } public func stopObserveExternalScreen() { NotificationCenter.default.removeObserver(self, name: NSNotification.Name.UIScreenDidConnect, object: nil) NotificationCenter.default.removeObserver(self, name: NSNotification.Name.UIScreenDidDisconnect, object: nil) } @objc func externalScreenDidConnect(_ notifiaction:NSNotification) { let screen:UIScreen = notifiaction.object as! UIScreen self.didConnectExternalScreen(externalScreen: screen) } @objc func externalScreenDidDisconnect(_ notifiaction:NSNotification) { let screen:UIScreen = notifiaction.object as! UIScreen self.didDisconnectScrren(externalScreen: screen) } }
相关推荐
对于苹果用户来说,AirPlay一定是一项令人印象深刻的技术,可以实现苹果不同设备间的内容投放,例如,iPhone、iPad中的内容可以通过AirPlay在Mac的屏幕上投放出来,不仅可以增强个人的视觉体验,还十分有利于群体间...
airplay最新的版本了,内面包括airplay.c、airplay_parser.c、airplay_parser.h、plist_parse.c、airplay_parser_callback.c几个重要实现文件,苹果用的二进制文件是binplist,解析已经封装到plist_parse.c里面,新测...
AIRPLAY播放器~~AIRPLAY播放器~~AIRPLAY播放器~~AIRPLAY播放器~~AIRPLAY播放器~~AIRPLAY播放器~~AIRPLAY播放器~~AIRPLAY播放器~~AIRPLAY播放器~~AIRPLAY播放器~~AIRPLAY播放器~~AIRPLAY播放器~~AIRPLAY播放器~~AIR...
主程序为AirplaySdkExample\Debug\xindawn-airplay-sdk-example.exe 编译环境vs2010 iPhone手机可以把屏幕镜像和音频等投射到AppleTV上,中间走的是AirPlay协议,这个是苹果的私有协议并没有对外公开,所以如果要...
AirPlay 协议规范
AirPlay 投屏协议详细介绍文档,包括图片投屏,视频投屏,屏幕镜像等使用的协议以及交互报文介绍
linux 移植airplay 教程,方便大家移植
libshairplay源码, airplay protocol中英文资料
airplay java客户端
适用于 Windows 的 Airplay2。 将AirplayServer和dnssd迁移到 Windows 平台。 、 Buid airplay2-win.sln在 Visual Studio 2019 中打开。 制作airplay-dll-demo为启动项目。 Ctrl + B,构建airplay-dll-demo。 生成...
AIRPLAY.rar 绿色版压缩包 解压即可
airplay 集成文档, 快速集成,用于展示airplay按钮等
airplay协议 无线投屏 Linux C语言源码可自行移植 windows 安卓 文件结构图,有缘吗C语言请联系
airplay dmr/dlna1.5.5图片,音/视频内容传屏。
airplay播放视频 可以应用到项目中,需要设备支持airplay
最新AIRPLAY加入了精心设计的分类电台播放列表,让你在听音乐时更加方便和轻松!神奇的“秒听”功能实现即点即听,无需等待!Airplay独有的 PureMusic 二代技术,为人声和在线音乐进行了特别优化,让音质更加自然...
专业小的音频播放器airplay3小巧的免费音频播放器,具有极其漂亮的外观吸引了不少用户,AirPlay 媒体播放器无需安装,只有单个文件,新一代界面与交互技术
此工具可以在windows电脑上运行airplay服务。ios设备可以投屏到电脑上。
airplay-protocol, 在AirPlay的顶部,一个低级协议包装器 广播协议一个低级别的协议包装器在AirPlay上用来连接苹果电视。适当的AirPlay客户端收费,请参见 airplayer 。 目前只实现了视频 API 。 安装npm install ...
adobe air 连接 airplay功能