oc
-(NSDictionary *)getMuiscInfoFromMuiscFile:(NSString *)filePath{
NSDictionary *dict = [NSDictionary dictionary];
NSURL *fileURL = [NSURL fileURLWithPath:filePath];
AVURLAsset *avURLAsset = [[AVURLAsset alloc] initWithURL:fileURL options:nil];
for (NSString *string in [avURLAsset availableMetadataFormats]){
for (AVMetadataItem *metadata in [avURLAsset metadataForFormat:string]){
if([metadata.commonKey isEqualToString:@"title"]){
NSString *title = (NSString *)metadata.value;//提取歌曲名
[dict setValue:title forKey:@"title"];
NSLog(@"歌名 = %@",title);
}
if([metadata.commonKey isEqualToString:@"albumName"]){
NSString *albumName = (NSString *)metadata.value;//提取歌曲名
[dict setValue:albumName forKey:@"albumName"];
NSLog(@"专辑 = %@",albumName);
}
if([metadata.commonKey isEqualToString:@"artist"]){
NSString *artist = (NSString *)metadata.value;//提取歌曲名
[dict setValue:artist forKey:@"artist"];
NSLog(@"歌手 = %@",artist);
}
if([metadata.commonKey isEqualToString:@"artwork"]){
UIImage *image = [UIImage imageWithData:(NSData *)metadata.value];//提取图片
[dict setValue:image forKey:@"image"];
}
}
}
return dict;
}
SWIFT
struct MusicInfo {
var musicName = String() //歌名
var albumName = String() //专辑
var artist = String() //歌手
var image = UIImage()
}
func getMusicInfoFromMusicFile(filePath:String)-> MusicInfo{
let url = URL(fileURLWithPath: filePath)
let asset = AVURLAsset(url: url)
var musicInfo = MusicInfo()
for format:AVMetadataFormat in asset.availableMetadataFormats {
for metadata:AVMetadataItem in asset.metadata(forFormat: format){
let key = metadata.commonKey?.rawValue
if key == "title"{ //歌名
musicInfo.musicName = metadata.value as! String
}else if key == "albumName"{ //专辑
musicInfo.albumName = metadata.value as! String
}else if key == "artist"{ //歌手
musicInfo.artist = (metadata.value as! String)
}else if key == "artwork"{ //图片
musicInfo.image = UIImage(data: metadata.value as! Data)!
}
}
}
return musicInfo
}
网友评论