Я делаю музыкальный плеер, используя MPMusicPlayerController.systemMusicPlayer()
, чтобы узнать Swift, и все идет хорошо, за исключением одной маленькой проблемы; всякий раз, когда музыка воспроизводится из моего приложения, а затем я переключаюсь на музыкальное приложение и завершаю его с помощью многозадачности, музыка останавливается, как ожидалось, но мое приложение падает, когда я переключаюсь на него. Я думал, что это может быть связано с тем, что я не устанавливал условие того, что должно произойти, когда музыка прекращается, и я не могу найти что-либо в Документах Apple, которые действительно помогают. Я попробовалКак я могу определить, прекращено ли приложение музыкальной музыки?
if (musicPlayer.playbackState == MPMusicPlaybackState.Interrupted) || (musicPlayer.playbackState == MPMusicPlaybackState.Stopped)
не имеет никакой пользы. Может ли кто-нибудь дать представление о том, почему это происходит и/или решение? Вот пример моего кода:
override func viewDidLoad() {
super.viewDidLoad()
var notificationCenter = NSNotificationCenter.defaultCenter()
notificationCenter.addObserver(self, selector: "handlePlayingItemChanged", name: MPMusicPlayerControllerNowPlayingItemDidChangeNotification, object: musicPlayer)
notificationCenter.addObserver(self, selector: "handlePlayState", name: MPMusicPlayerControllerPlaybackStateDidChangeNotification, object: musicPlayer)
musicPlayer.beginGeneratingPlaybackNotifications()
if (musicPlayer.playbackState == MPMusicPlaybackState.Playing) {
playButton.setImage(pause, forState: UIControlState.Normal)
setupCurrentMediaItem()
handleShuffleAndReplayMode()
self.isPlay = true
} else if (musicPlayer.playbackState == MPMusicPlaybackState.Paused) {
playButton.setImage(play, forState: UIControlState.Normal)
self.isPlay = false
} else if (musicPlayer.playbackState == MPMusicPlaybackState.Interrupted) || (musicPlayer.playbackState == MPMusicPlaybackState.Stopped) {
playButton.setImage(play, forState: UIControlState.Normal)
self.isPlay = false
}
}
Помогает ли использование 'applicationMusicPlayer'? 'MPMusicPlayerController' не очень хорош, почему бы не воспроизвести музыку с помощью AVPlayer? –