`
啸笑天
  • 浏览: 3462437 次
  • 性别: Icon_minigender_1
  • 来自: China
社区版块
存档分类
最新评论

管理你的第二屏(airPlay)

    博客分类:
  • ios
 
阅读更多

 

 

需求:

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)
    }
}

 

demo:https://github.com/easyui/SwiftMan/blob/master/SwiftManExample/SwiftManExample/ExternalScreenManagerTest.swift

分享到:
评论

相关推荐

    Unofficial AirPlay Protocol Specification.pdf

    - **音频流传输**:用户可以将音频从iOS设备或iTunes流传输到AirPort Express基站或第三方支持AirPlay的音频设备。 - **视频播放**:用户可以从iOS设备或iTunes播放视频。 - **屏幕镜像**:用户可以展示iOS设备或OS ...

    406_airplay_and_external_displays_in_ios_apps.pdf

    在iOS应用程序中实现AirPlay以及外部显示功能,是指开发人员可以让应用程序支持通过无线网络,将音频和视频内容投射到苹果的Apple TV或者兼容AirPlay的第三方设备上,同时也可以在多个屏幕上进行视频展示。...

    Airstream:使用AirPlay在Apple设备之间流式传输音频的框架

    AirPlay通过Wi-Fi网络连接,可以将内容从一个Apple设备推送到其他支持AirPlay的设备,如Apple TV、HomePod或第三方扬声器。AirPlay 2的发布进一步提升了性能,支持多房间音频和更高级的设备控制。 **Airstream框架...

    pp_2.9.65_dangbei.apk

    屏Plus是一款多屏互动接收端...与常见的多屏协议Airplay、DLNA、Miracast不同,屏Plus是支持手机控制并支持云端管理内容的多屏软件,并对开发者提供丰富的SDK资源,是目前业界最优秀的移动互联网连接与控制电视的工具。

    AirPlayService:一个运行在Mac模拟器上音频AirPlay服务

    AirPlay技术是由Apple公司开发的,它允许用户无线地将音频、视频以及屏幕镜像从一个设备(如iPhone、iPad或Mac)传输到支持AirPlay的设备(如Apple TV或者第三方扬声器)。在开发过程中,有时需要在Mac模拟器上测试...

    电信设备-基于移动智能终端的大屏、个人计算机远程控制方法及系统.zip

    例如,Apple的AirPlay、Android的Miracast等技术,可以让移动设备的画面实时同步到电视或投影仪。 3. **云服务集成**:许多远程控制解决方案会集成云服务,使用户可以在云端存储、管理和访问数据,进一步提升远程...

    2011款APPLE MACBOOK AIR装双系统.rar

    2. **创建Windows 7 USB安装媒介**:用户需要下载Windows 7的ISO镜像文件,然后使用特定工具(如Apple的Disk Utility或第三方软件)将其写入USB闪存驱动器。这将使USB驱动器成为可引导的Windows安装媒介。 3. **...

    ipad2 说明书

    - **AirPlay**:解释如何将屏幕内容镜像到Apple TV或其他支持的设备上。 - **安全功能**:讨论密码保护、Touch ID(如果适用)和其他安全措施。 #### 第四章至第二十一章:高级功能详解 - **Safari浏览器使用**:...

    iphone hdmi

    随着技术的进步,无线投屏技术也在快速发展,未来的iPhone可能会减少对物理HDMI转换器的依赖,更多地采用无线方式实现屏幕共享,如AirPlay等,这将带来更加便捷和自由的使用体验。 总的来说,“iPhone HDMI”这一...

    ipad2 中文版说明书(使用手册)

    2. AirPlay:将iPad2上的媒体内容无线传输到Apple TV或其他设备。 3. iWork套件:Pages、Numbers、Keynote,提供基本办公文档编辑功能。 九、故障排查与维护 1. 重启设备:遇到问题时,可以尝试长按电源键和Home键...

    Reflector7.5.4.20+注册机+插件

    对于Android设备,可能需要安装AirPlay兼容应用。在安装和使用插件时,一定要确认其来源可靠,避免安装含有恶意代码的插件。 总的来说,Reflector是一个实用的工具,尤其对教育和开发领域。但要注意软件的合法使用...

    twomon se win10版本

    此外,描述中特别强调“可以连接iPad作为外接显示器”,这意味着该软件支持通过特定的连接方式(如USB、Wi-Fi或蓝牙)将iPad作为第二显示器来使用,扩展用户的视觉工作空间。 关于“ipad ios”标签,这表明该软件...

    让手机免除数据线

    5. **Miracast或AirPlay**:对于需要屏幕镜像的场景,Miracast(Android)或AirPlay(iOS)可以将手机屏幕无线投射到电脑上,实现某种程度的控制和交互。 在实际操作中,为了确保安全和效率,需要注意以下几点: -...

    iphone手机qq在线

    用户可以通过Apple的AirPlay或第三方软件将iPhone屏幕投射到电脑上,然后在电脑上操作QQ;另外,腾讯也提供了WebQQ或QQ for Windows/Mac,允许用户在电脑上登录并管理他们的QQ账号。 在压缩包子文件的文件名称列表...

    iphone6/6s 的中文使用手册

    - **AirPlay**:说明了如何使用AirPlay将媒体内容投射到其他设备。 - **AirPrint**:指导用户如何设置并使用AirPrint打印。 - **使用Apple耳机**:介绍了如何使用Apple原装耳机。 - **蓝牙设备**:说明了如何连接和...

    电子功用-可切换外接显示端口的显示电路

    - 技术的进步还推动了无线显示标准,如WiDi、Miracast和AirPlay,使无线多屏显示成为可能。 总结起来,"电子功用-可切换外接显示端口的显示电路"这一主题涉及到显示接口、显示适配器、多显示器配置、信号切换技术...

    ios mdm文档

    控制 AirPlay 屏幕镜像功能。 ##### 4.15 Restrictions 命令 返回已安装的限制列表,用于查看和管理设备上的使用限制。 #### 五、管理功能 ##### 5.1 Managed Applications 管理应用程序的功能,包括安装、更新和...

    iPad使用技巧和常用应用

    2. **开启AirPlay镜像** - 双击Home键,向右滑动选择AirPlay镜像,选择Apple TV,即可将iPad屏幕内容投射到电视上。 #### 七、常用软件介绍 **文档处理:** - **Pages**:文字处理应用。 - **Numbers**:表格制作...

    MAC OS.X.10.8.iso 镜像文件

    4. **AirPlay 屏幕镜像**:用户可以直接通过AirPlay将Mac屏幕无线传输到支持的Apple TV设备上,方便演示和分享。 5. **通知中心**:模仿iOS的通知系统,集中显示来自各种应用程序的通知,避免打扰用户的正常工作。 ...

Global site tag (gtag.js) - Google Analytics