在文章Handling External Player Events Notifications Apple中说你需要这样做:
•使用共享MPRemoteCommandCenter对象为您要处理的事件注册处理程序,并禁用您不想接收的事件。
•开始播放音频。您的应用必须是正在播放的应用。应用程序在开始播放音频之前不会接收远程控制事件。使用控制中心测试您的应用是否正确接收和处理远程控制事件,您可以通过从屏幕底部向上滑动来访问该控制中心。这些控件将远程控制事件发送到当前或最近播放音频的应用程序。您还可以从设备的锁定屏幕访问播放控件。
第二部分只能在iOS上应用,它可以在那里工作。但是,不知道如何在macOS上处理这个问题。我认为需要设置的一件事是设置MPNowPlayingInfoCenter
。但它无法在macOS的控制中心检查,我猜想唯一的方法是通过检查TouchBar音频控件,但它似乎没有效果。所以可能需要在iOS上设置类似AVAudioSession
的东西,但我在macOS上找不到类似的东西。文档几乎不存在。
请注意,我在文本到语音应用程序中使用它,所以我不能使用像AVPlayer
这样的API。
我找到了答案 - 是的,它足以设置MPNowPlayingInfoCenter
,关键部分是设置playbackState
。