Objective c 不接收远程控制事件
我正在尝试为我的应用程序使用锁屏/正在播放控件,但未收到任何事件。文档看起来很直接,所以当我没有得到任何结果时,我有点惊讶。除了在设备上播放音频外,我的应用程序还需要接收遥控事件。我试图通过让它打印一些NSLog确认来测试这一点。我是否需要使用文档中未提及的音频或媒体框架?我没有收到任何警告或错误,所以我认为这不应该有任何问题。。。任何关于远程控制事件未注册原因的见解都将不胜感激 以下是相关代码:Objective c 不接收远程控制事件,objective-c,ios,ios5,Objective C,Ios,Ios5,我正在尝试为我的应用程序使用锁屏/正在播放控件,但未收到任何事件。文档看起来很直接,所以当我没有得到任何结果时,我有点惊讶。除了在设备上播放音频外,我的应用程序还需要接收遥控事件。我试图通过让它打印一些NSLog确认来测试这一点。我是否需要使用文档中未提及的音频或媒体框架?我没有收到任何警告或错误,所以我认为这不应该有任何问题。。。任何关于远程控制事件未注册原因的见解都将不胜感激 以下是相关代码: - (void)viewDidAppear:(BOOL)animated{ [super
- (void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
//Register for lock screen controls
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder];
}
- (void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
//Unregister lock screen controls
[[UIApplication sharedApplication] endReceivingRemoteControlEvents];
[self resignFirstResponder];
}
- (BOOL)canBecomeFirstResponder{
return YES;
}
//Lock screen controls
- (void)remoteControlReceivedWithEvent:(UIEvent *)event{
NSLog(@"RECEIVED");
if (event.type == UIEventTypeRemoteControl) {
switch (event.subtype) {
case UIEventSubtypeRemoteControlTogglePlayPause:
NSLog(@"RECEIVED");
break;
case UIEventSubtypeRemoteControlPreviousTrack:
NSLog(@"RECEIVED");
break;
case UIEventSubtypeRemoteControlNextTrack:
NSLog(@"RECEIVED");
break;
default:
break;
}
}
}
您是否已经确保要设置的应用程序的每个状态都正常
接收RemoteControlEvents
您应该在AppDelegate中查找必要的协议via。
似乎需要在application中实现willresignactive
和applicationdidebecomeactive
然而,苹果公司的文件中有关于。我认为它将帮助您按照自己的目的处理应用程序状态
希望它能帮助你 您是否已经确保应用程序的每个设置状态都正常 您应该在AppDelegate中查找必要的协议via。 似乎需要在
application中实现willresignactive
和applicationdidebecomeactive
然而,苹果公司的文件中有关于。我认为它将帮助您按照自己的目的处理应用程序状态
希望它能帮助你 除了Jojas提到的内容之外,您还需要确保有一个活动的音频会话。查看[AVAudioSession setActive:withFlags:error:]。除了Jojas提到的内容之外,您还需要确保您有一个活动的音频会话。查看[AVAudioSession setActive:withFlags:error:]。Hmm ok。我想知道是否缺少音频会话是问题的一部分。这就是问题所在。我的应用程序本身不播放音频,而是与另一台播放音频的设备进行通信。我添加了音频会话,但只有当应用程序是最后一个播放音频时,它才会接收远程事件。我将发布一个关于如何解决这个问题的新问题,但我想感谢你们@斯鲁奇,你最后是不是又问了一个问题?@Moshe-我问了。但从来没有得到答案!该功能对于项目来说并不重要,因此最终没有得到实现。在这个时候,我没有一个干净的解决方案。问题是:嗯,好的。我想知道是否缺少音频会话是问题的一部分。这就是问题所在。我的应用程序本身不播放音频,而是与另一台播放音频的设备进行通信。我添加了音频会话,但只有当应用程序是最后一个播放音频时,它才会接收远程事件。我将发布一个关于如何解决这个问题的新问题,但我想感谢你们@斯鲁奇,你最后是不是又问了一个问题?@Moshe-我问了。但从来没有得到答案!该功能对于项目来说并不重要,因此最终没有得到实现。在这个时候,我没有一个干净的解决方案。问题是:我相信你是对的。发布的代码都在我的视图控制器中,我没有在委托中设置这些活动状态方法。我将尝试您的建议并向您汇报。事实证明,这些方法是由默认的AppDelegate实现的。问题是我没有音频会话。谢谢你的帮助。您链接的文档在试图准确理解正在发生的事情时帮助很大。我很高兴能帮助您。请随便问,我相信你是对的。发布的代码都在我的视图控制器中,我没有在委托中设置这些活动状态方法。我将尝试您的建议并向您汇报。事实证明,这些方法是由默认的AppDelegate实现的。问题是我没有音频会话。谢谢你的帮助。您链接的文档在试图准确理解正在发生的事情时帮助很大。我很高兴能帮助您。请随便问。