Получить текущую воспроизводимую песню из приложения Spotify iOS

Я пытаюсь получить информацию о текущей воспроизводимой песне в приложении Spotify для iOS. Сценарий таков: откройте приложение Spotify для iOS, начните воспроизведение песни. Положите приложение в фоновом режиме и откройте мое приложение для iOS. Можно ли как-нибудь воспроизвести песню на Spotify в моем приложении для iOS?

Я попытался использовать свойство nowPlayingItem, как описано в этом посте, но оно не сработало: На iPhone: узнать, какая песня в настоящее время воспроизводится? (в музыкальном плеере iPod)

Я попытался использовать [MPNowPlayingInfoCenter defaultCenter].nowPlayingInfo, как описано в этом посте, но это не сработало: есть ли способ доступа к воспроизводимой в данный момент дорожке, когда iPhone подключен к аксессуару?

Я видел тот же вопрос, заданный в этом посте на форумах разработчиков Apple: https://devforums.apple.com/message/903640.

Кто-нибудь сталкивался с этой проблемой? Вы нашли жизнеспособное решение?

Спасибо,

4 ответа

Вот решение в Swift 3:

let player = MPMusicPlayerController.systemMusicPlayer()
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)")
}

Обратите внимание, что начиная с iOS 10, вы должны установить строку описания для NSAppleMusicUsageDescription в Info.plist, чтобы получить доступ к музыке пользователя.

mediaItem будет примером MPMediaItem если что-то играет. Вы можете получить доступ к атрибутам медиа-элемента, используя value(forProperty:) метод. Этот метод принимает свойство. Свойства определены в документации для MPMediaItem под заголовком "Общие ключи свойств элемента мультимедиа".

В последней версии Spotify iOS SDK (представленной примерно в сентябре 2018 г.) теперь вы можете подписаться на события проигрывателя и определять, когда начинается воспроизведение новой дорожки.

Для получения дополнительной информации ознакомьтесь с их кратким руководством.

Если я не ошибаюсь, Apple не позволяет программам обмениваться данными (по соображениям безопасности). Так что, возможно, в этом проблема.

Сначала вам нужно подключить приложение Spotify к своему приложению, затем вы можете получить из SPTAppRemotePlayerState?.track.uri от этого вы получите uri

Другие вопросы по тегам