我也有类似的问题,比如:
我需要为当前播放的歌曲找到歌词。
如果我只想从一个媒体项目中得到歌词,我就会得到空洞的结果:
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)")
}
}
}我也尝试过,但没有成功(也相应地获得了零和空字符串):
print("asset url: \(nowPlayingItem.assetURL)")
print("lyrics from value for property: \(nowPlayingItem.value(forProperty: MPMediaItemPropertyLyrics))")我很清楚这首歌有歌词,因为我在iPhone上的Apple应用上看到了这首歌。我试着为这首歌找歌词:皇后-波西米亚狂想曲。
有人能帮我从苹果音乐中得到当前播放歌曲的歌词吗?
发布于 2019-09-10 09:09:59
我们说的是本地文件吗?我不知道它如何与苹果音乐文件工作,但对于本地文件,这种方法有百分之百的成功率在检索歌词。
extension MPMediaItem {
func lyrics() -> String? {
guard let url = assetURL else { return nil }
let ass = AVAsset(url: url)
return ass.lyrics
}
}https://stackoverflow.com/questions/57264656
复制相似问题