Подтвердить что ты не робот

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

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

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

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

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

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

Спасибо,

4b9b3361

Ответ 1

Вот решение в 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 под заголовком "Ключи свойств общих мультимедийных элементов".

Ответ 2

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

Ответ 3

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

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