我有兴趣获取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
}
}
答案 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