AVPlayer无法检索任意项目的标题元数据

时间:2017-10-16 13:39:38

标签: ios swift avfoundation avplayer avkit

我似乎无法识别任何模式,但AVPlayer无法获取某些(但不是所有)mp3文件的曲目标题元数据,通常是超过一小时的文件长。在所有这些实例中,可以准确地检索其他元数据,如艺术品,艺术家或专辑标题。

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

下面的代码段。我观察了带有断点的代码,并且问题项不会在AVMetadataCommonKeyTitle的第二个else-if语句中执行任何操作,但所有其他语句都按预期工作。同样,此代码适用于99.9%的项目

链接到一些非工作文件: 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)
                }
            }

0 个答案:

没有答案