gpt4 book ai didi

ios - 如何检测何时单击中间耳机按钮

转载 作者:行者123 更新时间:2023-12-03 19:49:50 24 4
gpt4 key购买 nike

我想要一个单一 View 应用程序,在其中我检测到我原来的 iPhone 耳机的中键单击。

我尝试过

- (void)remoteControlReceivedWithEvent:(UIEvent *)theEvent
{
if (theEvent.type == UIEventTypeRemoteControl) {
switch(theEvent.subtype) {
case UIEventSubtypeRemoteControlTogglePlayPause:
//Insert code

case UIEventSubtypeRemoteControlPlay:
//Insert code
break;
case UIEventSubtypeRemoteControlPause:
// Insert code
break;
case UIEventSubtypeRemoteControlStop:
//Insert code.
break;
default:
return;
}
}
}

-(void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder];
}

- (BOOL) canBecomeFirstResponder {
return YES;
}

但是没有机会:(没有可捕获的事件。

有人有想法吗?

最佳答案

尝试了以上所有方法,但遗憾的是现在似乎都不起作用。然后我看了一眼 beginReceivingRemoteControlEvents 并发现了这个

In iOS 7.1 and later, use the shared MPRemoteCommandCenter object to register for remote control events. You do not need to call this method when using the shared command center object.

然后查看 MPRemoteCommandCenter 并最终进入 MPRemoteCommand 文档页面。

好消息是有这个例子:

let commandCenter = MPRemoteCommandCenter.shared()
commandCenter.playCommand.addTarget(handler: { (event) in

// Begin playing the current track
self.myMusicPlayer.play()
return MPRemoteCommandHandlerStatus.success
})

现在,如果我们想读取中间按钮,我们可以这样做:

MPRemoteCommandCenter.shared().togglePlayPauseCommand.addTarget { (event: MPRemoteCommandEvent) -> MPRemoteCommandHandlerStatus in

// middle button (toggle/pause) is clicked
print("event:", event.command)

return .success
}

这有效,我成功地检测到了耳机的中间按钮。

注意:我注意到有不同的行为取决于我们在上面放置此类代码的位置。也就是说,当我将其放入 View Controller 中时,报告的事件是相同的,而当我将其放入 AppDelegate 的 didFinishLaunching 中时,报告的事件是不同的。无论哪种方式,事件都会被检测到。

关于ios - 如何检测何时单击中间耳机按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30574193/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com