- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我在这里遵循了本教程:https://cartoonsmart.com/how-to-support-external-game-controllers-with-swift-2-and-sprite-kit-for-the-new-apple-tv/将外部游戏 Controller 连接到 sprite kit 中的 apple tv,但我无法使用教程代码完成此操作。我没有收到任何错误消息,但它根本无法正常工作。这是我的代码:
func setUpControllerObservers() {
NotificationCenter.default.addObserver(self, selector: #selector(connectControllers), name: NSNotification.Name.GCControllerDidConnect, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(disconnectController), name: NSNotification.Name.GCControllerDidDisconnect, object: nil)
}
func connectControllers() {
var count = 0
for controller in GCController.controllers() {
count = count + 1
print(count)
print(controller.extendedGamepad != nil)
print(controller.microGamepad != nil)
print(controller.gamepad != nil)
if (controller.extendedGamepad != nil && controller.playerIndex == .indexUnset) {
if (count == 1) {
controller.playerIndex = .index1
}
else if (count == 2) {
controller.playerIndex = .index2
}
else if (count == 3) {
controller.playerIndex = .index3
}
else if (count == 4) {
controller.playerIndex = .index4
}
controller.extendedGamepad?.valueChangedHandler = nil
setupExtendedController(controller: controller)
}
}
}
func disconnectController() {
}
func setupExtendedController(controller: GCController) {
controller.extendedGamepad?.valueChangedHandler = { (gamepad: GCExtendedGamepad, element: GCControllerElement) in
// not calling
}
}
调试时,我发现 GCController.controllers()
数组是空的,即使它已连接到 apple tv。为了更加确定,我什至在应用程序商店的应用程序上测试了 Controller ,它运行良好。有人可以帮忙吗?
编辑:这是我的 didMove 函数:
didMove(to view: SKView) {
setUpControllerObservers()
connectControllers()
}
最佳答案
您的 setUpControllerObservers
函数何时从哪个类调用?我们需要更多背景信息来帮助您。
无论如何,请确保您自己至少手动调用一次connectControllers
函数。您不能仅仅依靠传入通知来为您调用该函数。他们在您链接的教程中提到了这一点:
Notice too, we are calling connectControllers ourselves right after setUpControllerObservers. The first time the app runs, setUpControllerObservers will cause our NSNotification to also call connectControllers, but if we were to go back and forth between our GameScene and other class, we can’t rely on connectControllers getting called again from the notification. Which is why we call it ourselves.
您还应确保在您的应用完成启动之前不要调用这些函数(例如,在 AppDelegate
的早期):
Call the controllers class method to retrieve an array of GCController objects for all connected controllers. [...] If there are no connected controllers or you call this method while your app is launching, the array will be empty.
编辑:
出于调试目的,您能否尝试使用 startWirelessControllerDiscovery(completionHandler:)
函数“发现” Controller ? (在 Game Controller Programming Guide 中描述:发现无线 Controller )
关于swift - 如何在 swift 中连接到外部游戏 Controller - apple tv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44258146/
我为 Android TV 开发了一个应用程序并发布了。我想知道有多少用户直接在他们的电视上运行该应用程序以及有多少用户使用电视盒。 有没有办法以编程方式检测我的应用程序是否在 Android TV
有没有办法在我的 Android 应用程序代码中检测到这一点?我想区分“盒子类型”(例如 NSZGS7,不带显示器)和内置电视类型(NSXGT1,带显示器)googleTV 设备。是否有可用于此区分的
我想重新加载浏览片段中的一些行数据。 基本上,我想重置适配器数据,而不会在浏览片段中造成类似闪存的效果。知道如何做到吗? 类似于 ListView 中的notifyDataSetChanged()。
有没有办法获取与用户在设置 Google 电视盒时提供的邮政编码相对应的纬度和经度? 最佳答案 根据 Google 的 Christian Kurzke 在 AnDevCon II 上的演示,您使用:
我需要查看我的 androidTV 应用程序发出的后端 https 请求,但是,由于调用是“https”调用,我需要安装一个查尔斯证书(在我的 androidTV 上)以允许查尔斯解密它们。 如果有人
我的 HoneyComb 应用程序在平板电脑和 Google TV 上运行。我在我的设置片段中设置了发送电子邮件,但它返回“没有应用程序可以处理此功能”的错误。 如果没有可用的客户端 (createC
在 1080p 模拟器和智能电视 (nVidia Shield) 上,我只能获得 960x540 WebView。是否可以使用可用的整个分辨率? 最佳答案 使用 Android TV 的 HDTV 被
我正在使用 PlayFragment 在 AndroidTV 中播放视频。我想隐藏播放/暂停/快进/进度条等控件。 我该怎么做? 如果有人知道,请帮忙。我正在使用以下示例: [https://gith
我正在使用 PlayFragment 在 AndroidTV 中播放视频。我想隐藏播放/暂停/快进/进度条等控件。 我该怎么做? 如果有人知道,请帮忙。我正在使用以下示例: [https://gith
我想在我的 Android TV 应用中通过 URL 播放 MP4 视频。 我在示例代码 ( https://github.com/googlesamples/androidtv-Leanback )
我如何检测 Apple TV 上的节目? 我已经尝试检测屏幕数量: [[UIScreen screens] count] 但它仍然是 1。 我也试过听一个事件: [[NSNotificatio
运行新 Apple tvOS 操作系统(我认为是基于 iOS)的 Apple TV 的用户代理字符串是什么?他们是否将自己报告为“iOS”设备? 最佳答案 Apple TV 不支持 WebKit 框架
我想为 Android 和 iOS 创建视频流应用程序,它也需要在 Android 和 Apple TV 或至少在 Android TV 上运行。 最佳答案 2021 年 4 月更新 适用于 Andr
我使用 Leanback Library 开发了一个应用程序。该应用程序在 Sony Android TV 上运行良好。 但是当我在 play store 上成功发布应用程序时,当我在我的 Sony
我已成功打开 SSL/TLS 连接以进行配对,并已来回发送所有必需的消息。我在将 secret 发送到 GTV 时遇到了问题。出于某种原因,它通过发回状态为 BadSecret 的消息说我的 secr
我尝试将 ADB 命令从我的 Android 移动设备 (SGS5) 发送到我的 Android TV (Nvidia Shield TV)。我总是得到: error:device offli
任何人都知道如何实现标题中的问题?目的是避免在单击标题后导致标题栏消失的动画,因为 Leanback 应用程序会放大行项目。 setHeadersState BrowseSupportFragment
我正在尝试弄清楚如何通过软件命令而不是 Remote 上的按钮触发 Google TV 中的画中画功能。据我所知,目前 API 中没有任何内容可以让我执行此操作。所以,有两个问题: 有人尝试过破解来实
我有一个要求,当新版本可用时,我需要强制升级我的 Apple TV 应用程序。但与移动应用程序不同,AppleTv 没有 Safari 来在我的应用程序中打开 Web View 。我如何从我的 App
我们最近开始开发 Android TV,我们需要连接 charles 代理工具以简化开发过程。我们能够使用相同的 wifi 连接在电视上设置代理。 但我们无法在 Android tv 中安装 char
我是一名优秀的程序员,十分优秀!