有没有办法获得现有AVAsset的资源名称?

时间:2016-04-03 01:33:11

标签: ios avasset

我有兴趣获取AVAsset的资源名称(又名文件名),特别是mp4视频。资产是使用资源名称创建的,我只想在将来只有AVAsset实例时获取相同的字符串资源。在这种情况下,如何从资产中获取"my-video"

AVAsset(URL: NSBundle.mainBundle().URLForResource("my-video", withExtension: "mp4")!)

我可以获取资产的title,但这并不总是与资源名称相同。文件名不在资产的公共元数据中。

var title = ""
for metadataItem in asset.commonMetadata {
    if metadataItem.commonKey == "title" {
        title = metadataItem.value as! String
    }
}

2 个答案:

答案 0 :(得分:2)

您可以使用AVURLAsset

NSURL *url = [[NSBundle mainBundle] URLForResource:@"my-video" withExtension:@"mp4"];
AVURLAsset *asset = [AVURLAsset URLAssetWithURL:url options:nil];
NSLog(@"filename: %@", asset.URL.lastPathComponent);

抱歉,我对Swift了解不多,可能是:

let url:NSURL = NSBundle.mainBundle().URLForResource("my-video", withExtension: "mp4")!
let asset:AVURLAsset = AVURLAsset.init(URL: url, options: nil)
let filename:NSString = asset.URL.lastPathComponent!
print(filename)

答案 1 :(得分:1)

在Swift 4中

let assetURL = avAsset as! AVURLAsset
let name = assetURL.url.lastPathComponent