无法在 Swift playground 中枚举 MP3 标签

Unable to enumerate MP3 tags in a Swift playground

我试图在 Xcode 游乐场(使用 Swift)中枚举 MP3 文件中的 ID3 标签,但我得到的只是一个空数组。我也尝试了 'nil' 选项(出于绝望,我也尝试了下面的选项):

import Cocoa
import AVFoundation

var url = NSURL(fileURLWithPath: "/Users/marc/test.mp3")
let opts = [ AVURLAssetPreferPreciseDurationAndTimingKey: true ]
var asset = AVURLAsset(URL: url, options: opts)
var metaData = asset.commonMetadata

for item in metaData {
    print("key: \(item.commonKey), value: \(item.stringValue)")
}

我是不是做错了什么,还有其他人可以让它工作吗?

游乐场是沙盒化的。您无法读取或写入文件系统。

但是您可以阅读 Playground 中的文件。

打开项目导航器:

View > Navigators > Show Project Navigator

并且 将您的 MP3 放入 Resources 文件夹

一旦它在那里,将文件从导航器中拖到源代码区域:它会生成一个代表文件的图标URL。

然后您可以将您的代码用于此文件:

let url = (the file icon dragged from the project navigator)

let asset = AVURLAsset(URL: url, options: nil)
let metaData = asset.commonMetadata

for item in metaData {
    if let key = item.commonKey, let value = item.stringValue {
        print("key: \(key), value: \(value)")
    }
}

截图: