获取MP3文件信息的代码
2014-07-10 00:00
260 查看
两个方法都是获取mp3文件信息的,也可以获取m4a文件的信息,自己留着备用,乱码问题还未解决 -(void)getMp3Information { NSURL *fileUrl = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/RudyExpandedScore.mp3",musicDir]]; AudioFileTypeID fileTypeHint = kAudioFileMP3Type; NSString *fileExtension = [[fileUrl path] pathExtension]; if ([fileExtension isEqualToString:@"mp3"]) { AudioFileID fileID = nil; OSStatus error = noErr; error = AudioFileOpenURL((__bridge CFURLRef)fileUrl, kAudioFileReadPermission, 0, &fileID); if (error != noErr) { DeLog(@"open error"); } UInt32 id3DataSize = 0; error = AudioFileGetPropertyInfo(fileID, kAudioFilePropertyID3Tag, &id3DataSize, NULL); if (error != noErr) { DeLog(@"AudioFileGetPropertyInfo Failed!"); } NSDictionary *piDict = nil; UInt32 piDataSize = sizeof(piDict); error = AudioFileGetProperty(fileID, kAudioFilePropertyInfoDictionary, &piDataSize, &piDict); if (error != noErr) { DeLog(@"AudioFileGetProperty Failed!"); } CFDataRef albumPic = nil; UInt32 picDataSize = sizeof(albumPic); error = AudioFileGetProperty(fileID, kAudioFilePropertyAlbumArtwork, &picDataSize, &albumPic); if (error != noErr) { DeLog(@"AudioFileGetProperty failed!(album)"); } NSData *imageData = (__bridge NSData *)albumPic; UIImage *img = [UIImage imageWithData:imageData]; lrcImageView.image = img; NSString *album = [(NSDictionary *)piDict objectForKey:[NSString stringWithUTF8String:kAFInfoDictionary_Album]]; NSString *artlist = [(NSDictionary *)piDict objectForKey:[NSString stringWithUTF8String:kAFInfoDictionary_Artist]]; NSString *title = [(NSDictionary *)piDict objectForKey:@kAFInfoDictionary_Title]; DeLog(@"album: %@\nartList: %@,Title: %@",album,artlist,title); DeLog(@"mp3Dic: %@",piDict); } } -(void)getMp3InfoWithAVURLAsset { NSURL *fileUrl = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/RudyExpandedScore.mp3",musicDir]]; AVURLAsset *mp3Asset = [AVURLAsset URLAssetWithURL:fileUrl options:nil]; for (NSString *format in [mp3Asset availableMetadataFormats]) { DeLog(@"formatString: %@",format); for (AVMetadataItem *metadataitem in [mp3Asset metadataForFormat:format]) { DeLog(@"commonKey = %@",metadataitem.commonKey); if ([metadataitem.commonKey isEqualToString:@"artwork"]) { NSData *data = [(NSDictionary *)metadataitem.value objectForKey:@"data"]; NSString *mime = [(NSDictionary *)metadataitem.value objectForKey:@"MIME"]; lrcImageView.image = [UIImage imageWithData:data]; DeLog(@"mime: %@",mime); break; } else if([metadataitem.commonKey isEqualToString:@"title"]) { NSString *title = (NSString *)metadataitem.value; DeLog(@"title: %@",title); } else if([metadataitem.commonKey isEqualToString:@"artist"]) { NSString *artist = (NSString *)metadataitem.value; DeLog(@"artist: %@",artist); } else if([metadataitem.commonKey isEqualToString:@"albumName"]) { NSString *albumName = (NSString *)metadataitem.value; DeLog(@"albumName: %@",albumName); } } } CMTime durationTime = mp3Asset.duration; CGFloat duration = CMTimeGetSeconds(durationTime); DeLog(@"总时间:%f",duration); }
相关文章推荐
- Dive Into Python 学习记录3-对获取某文件夹下MP3文件信息的代码构成分析
- 获取MP3文件信息的代码
- C#获取文件详细备注信息,MP3的Tag等等
- 【ASP.NET 进阶】获取MP3文件信息并显示专辑图片
- Java如何从XML文件中获取节点信息的代码解析 Document方法
- java 获取MP3文件时长等信息
- 用java获取mp3文件播放时长和tag信息
- 编写Python脚本来获取mp3文件tag信息的教程
- 获取MP3和M4A音乐文件的歌曲信息以及专辑图片--备用
- 如何从mp3,wma等音频文件中获取歌曲信息
- Python实例获取mp3文件的tag信息
- vc代码获取文件版本信息
- 实现php获取mp3文件元信息如播放时间歌曲作者等
- C# 获取 mp3文件信息
- MP3文件ID3信息编辑器代码开源 - 开源研究系列文章
- 获取文件的附加信息之MP3篇
- C# 获取 mp3文件信息(tag信息)
- python获取mp3文件信息的方法
- android获取MP3文件的歌曲信息
- java代码里获取xml文件里的数据库配置信息