使用 swift 我们可以以编程方式在 Apple TV 上播放照片吗?

Posted

技术标签:

【中文标题】使用 swift 我们可以以编程方式在 Apple TV 上播放照片吗?【英文标题】:using swift can we airplay photos on Apple TV programmatically? 【发布时间】:2019-05-10 10:31:58 【问题描述】:

我想在 ios 中使用 swift 构建一个简单的应用程序,它会在我的应用程序中显示专辑的照片,单击按钮时它应该会在我的 Apple TV 上播放。

我阅读了很多文件和文章,但不确定我们是否可以为照片做这件事。很少有人说音频/视频是可能的,但不确定照片。

至少任何链接或示例代码都会有所帮助。

谢谢

【问题讨论】:

看看这个链接***.com/questions/8231868/…不确定是否会工作 没有用户交互就没有 API 可以做到。如果您使用 AV 框架显示照片,您可以使用 AVRoutePickerView 让用户从您的应用中选择目的地。 @Paulw11,请帮忙!我可以镜像应用程序屏幕而不是以编程方式快速显示照片/视频吗?以编程方式在支持 Airplay 的/智能电视上镜像 ios 应用程序有什么想法吗? @Paulw11,如果可能的话,请在这里发表评论,我还没有得到确切的开始线索。 issuetracker.google.com/issues/188566061?pli=1 我不相信有任何 api 可以以编程方式镜像设备屏幕。用户需要通过控制中心进行操作。闪电转 hdmi 适配器会自动镜像屏幕。 【参考方案1】:

用户应通过 AirPlay 连接到控制中心的 Apple TV:

然后您可以将 Apple TV 用作应用程序的第二个屏幕。

    检查应用是否有外接显示器:

    if UIScreen.screens.count > 1 
        // External display is connected ...
    
    

    为外部窗口创建新的 UIScreen:

    if let externalScreen = UIScreen.screens.last 
        externalWindow = UIWindow()
        externalWindow.screen = externalScreen
        configureExternalWindow(externalWindow)
        externalWindow.isHidden = false
    
    

    并根据需要使用它来显示相册:

    // In our Collection View selection callback
    if inSingleDisplayMode 
        photoViewController.photo = photo
        navigationController?.pushViewController(photoViewController, animated: true)
     else 
        showOnExternalDisplay(photo)
    
    

WWDC 会议上的其他信息:

Adding Delight to your iOS App

AirPlay and External Displays in iOS apps

【讨论】:

谢谢,例如,让我试试,我会更新。 @Anton,我可以镜像应用程序屏幕,而不是在 swift 中以编程方式快速显示照片/视频吗?在支持airplay/智能电视上镜像ios应用程序有什么想法吗?

以上是关于使用 swift 我们可以以编程方式在 Apple TV 上播放照片吗?的主要内容,如果未能解决你的问题,请参考以下文章

你能以编程方式在iOS 8(w / Swift)中切换“请勿打扰”模式吗?

如何以编程方式找到 Swift 的版本?

如何以编程方式找到 Swift 的版本?

我可以在 Swift 5 和 IOS 12 中以编程方式更改 iOS 屏幕壁纸吗

以编程方式打开 Apple Health

如何在 Swift 中以编程方式启用/禁用菜单对象