Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检测macOS上的远程音频按钮?_Macos_Cocoa_Audio Player - Fatal编程技术网

如何检测macOS上的远程音频按钮?

如何检测macOS上的远程音频按钮?,macos,cocoa,audio-player,Macos,Cocoa,Audio Player,文中 苹果说你需要这样做: •使用共享MPRemoteCommandCenter对象为您希望处理的事件注册处理程序,并禁用您不想接收的事件 •开始播放音频。您的应用程序必须是正在播放的应用程序。应用程序在开始播放音频之前不会接收远程控制事件。测试您的应用程序是否通过control Center正确接收和处理远程控制事件,您可以通过从屏幕底部边缘向上滑动来访问control Center。这些控件将远程控制事件发送到当前或最近正在播放音频的应用程序。您还可以从设备的锁定屏幕访问播放控件 第二部分只

文中 苹果说你需要这样做:

•使用共享MPRemoteCommandCenter对象为您希望处理的事件注册处理程序,并禁用您不想接收的事件

•开始播放音频。您的应用程序必须是正在播放的应用程序。应用程序在开始播放音频之前不会接收远程控制事件。测试您的应用程序是否通过control Center正确接收和处理远程控制事件,您可以通过从屏幕底部边缘向上滑动来访问control Center。这些控件将远程控制事件发送到当前或最近正在播放音频的应用程序。您还可以从设备的锁定屏幕访问播放控件

第二部分只能在iOS上应用,并且可以在那里使用。但是,不确定如何在macOS上处理此问题。我假设需要设置的一件事是设置
mpnowplayingfocenter
。但它不能在macOS的控制中心检查,我想唯一的方法是检查触摸栏音频控制,但它似乎没有效果。因此,可能需要在iOS上设置类似于
AVAudioSession
的功能,但我在macOS上找不到类似的功能。文件几乎不存在


请注意,我在“文本到语音”应用程序中使用了它,因此我不能使用一些API,如
AVPlayer

我找到了答案-是的,设置
mpnowplayingfocenter
,就足够了,关键的部分是设置
playbackState
,你不需要第二部分,只需注册处理程序即可。@Wileke,不幸的是没有,我刚刚写了一个简单的项目,它就是这样做的,不需要其他任何东西来确保没有干扰。当我按下耳机上的按钮时(我确实分配了暂停播放和暂停/播放命令,以便处理它发送的任何内容),iTunes正在打开。对不起,我误解了“远程音频按钮”。我使用了键盘上的按钮、遥控器和模拟触摸栏。就像那样,但也许你可以使用AVPlayer在哪里玩,这可能会设置属性本身。但是仅仅分配远程命令是不起作用的。我没有对播放器做任何事情,只是一些
addTargetWithHandler:
s。我过去可能禁用了启动iTunes。你能分享一下这是如何存档的吗?即使将playbackstate设置为playing,它也无法工作。