Получить текущую песню в Spotify на iPhone

Доступ к MPMusicPlayerController.systemMusicPlayer() (код ниже) работает для получения информации о треке для того, что играет в приложении Apple Music, но есть ли способ получить доступ к информации о текущей песне в приложении Spotify?

Этот код, отправленный в этом ответе Мне нужно знать, как получить информацию о том, какой плеер в настоящее время работает (игрок, spotify, napster...) использует MPNowPlayingInfoCenter, который равен нулю, используя Apple Music или Spotify и т.д.

  let player = MPMusicPlayerController.systemMusicPlayer()

    @IBAction func getMusicButton(_ sender: UIButton) {




        if let mediaItem = player.nowPlayingItem {
            let title: String = mediaItem.value(forProperty: MPMediaItemPropertyTitle) as! String
            let albumTitle: String = mediaItem.value(forProperty: MPMediaItemPropertyAlbumTitle) as! String
            let artist: String = mediaItem.value(forProperty: MPMediaItemPropertyArtist) as! String

            print("\(title) on \(albumTitle) by \(artist)")
        }

    }

Ответ 1

В Apple Documentation говорится, что есть два типа музыкального проигрывателя:

  • Музыкальный проигрыватель приложений воспроизводит музыку локально в вашем приложении. Он не знает о том, что сейчас играет музыкальные приложения, и не делает этого влияют на состояние музыкальных приложений. Есть два музыкальных плеера: applicationMusicPlayer и applicationQueuePlayer. Приложение проигрыватель очереди обеспечивает больший контроль над содержимым очереди и является предпочтительным игроком.
  • Системный музыкальный проигрыватель использует ваше музыкальное приложение. При создании экземпляра он принимает текущее состояние приложения Music, например, идентификация текущего элемента. Если пользователь переключается от вашего приложения во время воспроизведения музыки, эта музыка продолжает играть. Затем в приложении "Музыка" есть ваши музыкальные проигрыватели, которые недавно были установлены режим повтора, режим воспроизведения в случайном порядке, состояние воспроизведения и текущий элемент.

Первое - только в вашем приложении, а второе - приложение Apple Music, так как вы не можете связаться со своей песочницей приложений в обычном приложении, это невозможно в приложениях App Store.

Если, однако, вы все же хотите создать свою идею, вы можете развить это на джейлбрейк-устройстве. Этот проект github имеет простой пример того, как получить текущую песню в настройке джейлбрейка. Если вы хотите попробовать, это отличный вариант, будь то немного устаревший, по-прежнему точный урок о том, как начать разработку твитов.


Обновление

Я просто столкнулся с этим Spotify SDK, который позволит пользователям входить в систему и воспроизводить музыку пользователей Spotify. Таким образом, музыкальный поток будет внутри вашего приложения, и у вас будет доступ ко всей информации в applicationMusicPlayer. Недостатком является то, что это будет гораздо больше работы по настройке, чем просто получение информации о Spotify игровой дорожке, и пользователю придется играть свою музыку из вашего приложения, вместо приложения Spotify.