我的控制中心有一个问题,我需要通过控制中心控制后台的音频播放,我设置了以下代码:
override func viewDidLoad() {
super.viewDidLoad()
let mpic = MPNowPlayingInfoCenter.default()
mpic.nowPlayingInfo = [
MPMediaItemPropertyTitle:arrayOfUrl[index].lastPathComponent,
MPMediaItemPropertyArtist:"Collection Of Audios"
]
}
方法接收控件事件。
override func remoteControlReceived(with event: UIEvent?)
我设置了以下代码
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
UIApplication.shared.beginReceivingRemoteControlEvents()
self.resignFirstResponder()
}
一切都很好并且正常工作问题是只有我可以从控制中心控制我的音频如果我播放一首音乐,从这个音乐我退出应用程序在这种情况下,我可以控制音频播放,暂停,下一步,等等,但是如果我试图通过应用程序从另一个页面控制控制中心的音频,控制中心不响应下一个,上一个错误,请帮助控制中心从我的应用程序中的任何地方响应我的事件,就像我播放音频和我退出页面音频和当前正在播放的音频,并从该页面退出应用程序
非常感谢
发布于 2019-04-05 14:12:00
这篇文章太老了,但也许这篇文章能帮助到一些人。您可以将此方法添加到类中:
//*****************************************************************
// MARK: - Remote Command Center Controls
//*****************************************************************
func setupRemoteCommandCenter() {
// Get the shared MPRemoteCommandCenter
let commandCenter = MPRemoteCommandCenter.shared()
// Add handler for Play Command
commandCenter.playCommand.addTarget { event in
//Do stuff here or play your mediaPlayer
return .success
}
// Add handler for Pause Command
commandCenter.pauseCommand.addTarget { event in
//Do stuff here or pause your mediaPlayer
return .success
}
// Add handler for Next Command
commandCenter.nextTrackCommand.addTarget { event in
//Do stuff
return .success
}
// Add handler for Previous Command
commandCenter.previousTrackCommand.addTarget { event in
//Do stuff
return .success
}
}
然后在onCreate方法中调用该方法:
// Setup Remote Command Center
setupRemoteCommandCenter()
https://stackoverflow.com/questions/42200690
复制