Может быть, это дублирующий вопрос, но ни одно из решений не работает для меня. Я пробовал почти все.
Информация о текущем воспроизведении не обновляется на экране блокировки.
Версия Swift: 5 и версия iOS: 13
Вот мой код
func setupRemoteCommandCenter() {
UIApplication.shared.beginReceivingRemoteControlEvents()
let commandCenter = MPRemoteCommandCenter.shared()
commandCenter.playCommand.addTarget { event in
return .success
}
commandCenter.pauseCommand.addTarget { event in
return .success
}
commandCenter.nextTrackCommand.addTarget { event in
return .success
}
commandCenter.previousTrackCommand.addTarget { event in
return .success
}
}
func updateLockScreen() {
var nowPlayingInfo = [String : Any]()
nowPlayingInfo[MPMediaItemPropertyArtist] = "Artist"
nowPlayingInfo[MPMediaItemPropertyTitle] = "title"
MPNowPlayingInfoCenter.default().nowPlayingInfo = nowPlayingInfo
}
Один метод вызывается из viewDidLoad, т.е.
override func viewDidLoad() {
super.viewDidLoad()
AudioManager.shared.audioManageDelegate = self
// Do any additional setup after loading the view.
setupRemoteCommandCenter()
}
А другой вызывается из метода playbuttonAction, т.е.
@IBAction func togglePlayPauseButton(sender: UIButton) {
//play pause button
sender.isSelected = !sender.isSelected
//updateLockScreen() //I checked it from calling here also
if sender.isSelected {
AudioManager.shared.playMusic()
} else {
AudioManager.shared.pauseMusic()
}
updateLockScreen()
}
Мой Appdelegate здесь
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
setUPforbackground()
return true
}
func setUPforbackground() {
do {
try AVAudioSession.sharedInstance().setCategory(.playback, mode: .default, options: [.mixWithOthers, .allowAirPlay])
print("Playback OK")
try AVAudioSession.sharedInstance().setActive(true)
print("Session is Active")
} catch {
print(error)
}
}
Вызов updateLockScreen()
перед вызовом playMusic()
также не дает результата. Я что-то пропустил здесь?