如何为我的音乐播放器控制耳机?

我正在创建一个音乐播放器iOS应用程序并从firebase获取数据。 我可以在模拟器或iPhone中控制播放,暂停,下一个和上一个。 耳机连接到设备播放时,下一个和上一个function无法正常工作。 这是我用过的代码;

func setupRemoteCommandCenter() { // Get the shared MPRemoteCommandCenter let commandCenter = MPRemoteCommandCenter.shared() // Add handler for Play Command commandCenter.playCommand.addTarget { event in player?.play() print("headset play") return .success } // Add handler for Pause Command commandCenter.pauseCommand.addTarget { event in player?.pause() print("headset pause") return .success } // Add handler for Next Command commandCenter.nextTrackCommand.addTarget { event in return .success } // Add handler for Previous Command commandCenter.previousTrackCommand.addTarget { event in return .success } } 

并在viewdidload调用setupRemoteCommandCenter函数

该文档说明要接收您需要的玩家事件通知

  1. 开始播放音频
  2. 成为“正在玩的应用程序”

“正在播放应用程序”的定义很难确定,但它似乎是任何具有活动,不可混合音频会话并播放音频的应用程序(或者最近播放音频,似乎有一个简短的优雅期间)。 一种可能的非混音音频会话是:

 let session = AVAudioSession.sharedInstance() do { try session.setCategory(AVAudioSessionCategoryPlayback) try session.setActive(true) } catch let err as NSError { print("Error setting up non mixable audio session \(err)") } 

ps如果您希望耳机控件在屏幕锁定时工作(或者您希望锁屏控件能够正常工作),您需要将音频添加到后台模式,因为从技术上讲,如果屏幕被锁定,那么您的应用程序已经背景:

在此处输入图像描述