21

在 Apple TV 发布期间,Crossy Road 的开发人员演示了使用 iPhone 作为 Apple 电视游戏的第二个控制器:

http://www.macrumors.com/2015/09/09/cooperative-play-for-crossy-road/

我的第一个想法是使用Multipeer Connectivity Framework来实现它。但是,tvOS 不支持它。有没有一种好方法可以在没有 Multipeer Connectivity 的情况下将 iPhone 连接到 Apple TV?

更新:我似乎无法使用 GameKit,因为 GKPeerPickerController 已从 tvOS 上的 GameKit 中删除。

4

4 回答 4

10

你可以试试我的图书馆。我为我的应用程序构建了这个可能对你也有帮助。

https://github.com/vivianaranha/TvOS_Remote

Apple TV 项目(接收器)

第 1 步:创建 TvOS 项目并从 RemoteReceiver 导入文件

libRemoteReceiver.a

远程接收器.h

第 2 步:在您的 ViewController.m 文件中导入 RemoteReceiver.h 文件

#import "RemoteReceiver.h"

第 3 步:在 ViewController.m 文件中添加以下代码

@interface ViewController () <RemoteReceiverDelegate>
@property (nonatomic, strong) RemoteReceiver *remoteReceiver;
@end

第 4 步:在 viewDidLoad 内部分配并为 remoteReceiver 设置委托

self.remoteReceiver = [[RemoteReceiver alloc] init];
self.remoteReceiver.delegate = self;

第 5 步:为从 iOS 远程应用程序发送的消息实现以下委托方法

-(void) didReceiveMessage:(NSDictionary *)userInfo{
    NSLog(@"%@",userInfo);
}

iOS 项目(发件人/远程控制)

第 1 步:创建一个 iOS 项目并从 RemoteSender 导入文件

libRemoteSender.a

远程发送器.h

第 2 步:在 ViewController 中导入 RemoteSender 类

#import "RemoteSender.h"

第 3 步:使用以下代码更新 ViewController.m

@interface ViewController ()
@property(nonatomic, strong) RemoteSender *remoteSender;
@end

第 4 步:分配和初始化 remoteSender 对象

self.remoteSender = [[RemoteSender alloc] init];

第 5 步:实现手势和方法(检查下面的按钮代码)

- (IBAction)sendSomeInformation:(id)sender {
    NSDictionary *theDictionaryToSendToTV = @{@"name": @"John Smith",@"age": @"35", @"address":@"123 Main St"};
    [self.remoteSender sendInfo:theDictionaryToSendToTV];
}
于 2015-09-22T05:24:36.703 回答
7

我开发了一个框架,它支持创建基于软件的控制器并通过 MFi 配置文件引导输入,允许您拥有一个处理软件和硬件控制器的单一代码库。还有许多其他功能:

https://github.com/robreuss/VirtualGameController

NSNetservice 用于连接,支持所有 Apple 平台(iOS、OS X、watchOS 和 tvOS)。

所有功能:

  • 用于 Apple 的GameController框架 (GCController)的 Mimics API
  • 软件控制器中的设备运动支持
  • 自定义控制器元素
  • 自定义元素映射
  • 基于 WiFi,具有蓝牙后备功能
  • 控制器转发
  • 适用于 Apple TV 模拟器
  • Apple TV 上无限数量的硬件控制器(使用控制器转发)
  • 能够通过运动、扩展轮廓元素和自定义元素增强廉价的滑入式/贴合式控制器
  • iCade 控制器支持(通过 MFi 配置文件映射,因此它们显示为 MFi 硬件)
  • 易于在软件控制器上实现 3d 触摸
  • 使用软件控制器(包括 Apple TV)利用屏幕键盘和蓝牙键盘
  • 支持快照(兼容苹果的快照格式)
  • 斯威夫特 2.1
  • 基于框架
于 2015-11-10T22:04:53.923 回答
3

看起来CFNetwork可以在 TvOS 上使用。试试这个问题以获取有关使用CFNetwork.

编辑:也看看CoreBluetooth. 我正在处理同样的问题 - 我想为我的 TvOS 应用程序提供一个配套的 iPhone 应用程序。

于 2015-09-17T19:45:57.643 回答
0

好吧,我不确定它是否符合“好方法”的要求,但是GKMatchRequest并且GKMatchmaker在那里,所以也许这就是他们正在使用的。

https://developer.apple.com/library/prerelease/tvos/documentation/GameKit/Reference/GKMatchRequest_Ref/

于 2015-09-12T06:44:12.357 回答