Получить текущую воспроизводимую песню из приложения 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