在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,因为已经从tvOS上的GameKit中删除了GKPeerPickerController。
答案 0 :(得分:10)
你可以试试我的图书馆。我为我的应用程序构建这个也许对你有用。
https://github.com/vivianaranha/TvOS_Remote
Apple TV Project(接收方)
步骤1:创建TvOS项目并从RemoteReceiver导入文件
libRemoteReceiver.a
RemoteReceiver.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
RemoteSender.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];
}
答案 1 :(得分:7)
我开发了一个框架,支持创建基于软件的控制器,并通过MFi配置文件引导输入,允许您拥有一个处理软件和硬件控制器的单一代码库。许多其他功能:
https://github.com/robreuss/VirtualGameController
NSNetservice用于连接,支持所有Apple平台(iOS,OS X,watchOS和tvOS)。
所有功能:
答案 2 :(得分:3)
在TvOS上可以看到CFNetwork
。请尝试this question获取有关使用CFNetwork
的帮助。
编辑:还要看看CoreBluetooth
。我正在研究同样的问题 - 我想为我的TvOS应用程序配备一个配套的iPhone应用程序。
答案 3 :(得分:0)
嗯,我不确定它是否属于“好方法”,但GKMatchRequest
和GKMatchmaker
就在那里,所以也许这就是他们正在使用的内容。