У меня похожая проблема, например:
- Как мне получить текст воспроизводимой в данный момент песни в Swift 4? - здесь нет ответа
- доступ к текстам песен на iPhone - ответ не работает
- Как получить текст для песни Now Playing в iOS10 (Swift 3) - ответ не работает
Мне нужно получить текст для текущей воспроизводимой песни.
Я получаю пустой результат, если просто пытаюсь получить текст из медиафайла:
let musicPlayerController = MPMusicPlayerController.systemMusicPlayer
// ...
if let nowPlayingItem = musicPlayerController.nowPlayingItem {
// We have empty string here
if let lyrics = nowPlayingItem.lyrics {
print("Lyrics: \(lyrics)")
}
}
Я пытался получить тексты песен через URL-адрес актива, как было предложено в ответах выше, но это не работает, URL-адрес актива всегда равен нулю.
let musicPlayerController = MPMusicPlayerController.systemMusicPlayer
// ...
if let nowPlayingItem = musicPlayerController.nowPlayingItem {
if let songUrl = nowPlayingItem.value(forProperty: MPMediaItemPropertyAssetURL) as? URL {
print("song url: \(songUrl)")
let songAsset = AVURLAsset(url: songUrl)
if let lyricsFromAsset = songAsset.lyrics {
print("Lyrics from asset: \(lyricsFromAsset)")
}
}
}
Я также безуспешно пробовал (также получаю nil и пустую строку соответственно):
print("asset url: \(nowPlayingItem.assetURL)")
print("lyrics from value for property: \(nowPlayingItem.value(forProperty: MPMediaItemPropertyLyrics))")
Я точно знаю, что у песни есть текст, потому что я вижу его в приложении Apple Music на iPhone для этой песни. Я пытался найти текст песни: Queen - Bohemian Rhapsody.
Может ли кто-нибудь помочь с получением текстов для текущей воспроизводимой песни из музыки Apple?