1

我似乎无法在这里识别任何模式,但 AVPlayer 无法获取某些(但不是全部)mp3 文件的曲目标题元数据,通常是超过一个小时的文件。在所有这些情况下,其他元数据(如艺术品、艺术家或专辑名称)都会被准确检索。

当通过 iTunes 同步时,库存音乐应用程序没有任何问题 - 然后尝试通过MPMediaItem.title正确获取标题在每种情况下都会返回标题。

下面的代码片段。我观察了带有断点的代码,并且问题项在 AVMetadataCommonKeyTitle 的第二个 else-if 语句中没有执行任何操作,但所有其他语句都按预期工作。再一次,这段代码完美地适用于 99.9% 的 items

一些非工作文件的链接: https ://soundcloud.com/humboldthain/blind-observatory-3-years-of-humboldthain-closing-set-4h

https://soundcloud.com/bananamilk/mary-yuzovskaya-femalepressure-tresor-berlin-january-2017

            //Declare blank/default vars
            var artist: String = ""
            var album: String = ""
            var track: String = ""
            var artwork: UIImage! = UIImage(named: "defaultArtwork")


            //Metadata loop
            for i in asset!.commonMetadata {
                if i.commonKey == AVMetadataCommonKeyArtist {
                    artist = i.value as! String
                }
                else if i.commonKey == AVMetadataCommonKeyTitle {
                    track = i.value as! String
                }
                else if i.commonKey == AVMetadataCommonKeyAlbumName {
                    album = i.value as! String
                }
                else if i.commonKey == AVMetadataCommonKeyArtwork {
                    artwork = UIImage(data: i.value as! Data)
                }
            }
4

0 回答 0