- (void)convertToMp3:(MPMediaItem *)mediaItem {
//get the name of the file.
NSString *songTitle = [mediaItem valueForProperty: MPMediaItemPropertyTitle];
//convert MPMediaItem to AVURLAsset.
AVURLAsset *sset = [AVURLAsset assetWithURL:[mediaItem valueForProperty:MPMediaItemPropertyAssetURL]];
//get the extension of the file.
NSString *fileType = [[[[sset.URL absoluteString] componentsSeparatedByString:@"?"] objectAtIndex:0] pathExtension];
//init export, here you must set "presentName" argument to "AVAssetExportPresetPassthrough". If not, you will can't export mp3 correct.
AVAssetExportSession *export = [[AVAssetExportSession alloc] initWithAsset:sset presetName:AVAssetExportPresetPassthrough];
NSLog(@"export.supportedFileTypes : %@",export.supportedFileTypes);
//export to mov format.
export.outputFileType = @"com.apple.quicktime-movie";
export.shouldOptimizeForNetworkUse = YES;
NSString *extension = [export.outputFileType pathExtension];
NSString *path = [NSHomeDirectory() stringByAppendingFormat:@"/Documents/%@.%@",songTitle, extension];
NSURL *outputURL = [NSURL fileURLWithPath:path];
export.outputURL = outputURL;
[export exportAsynchronouslyWithCompletionHandler:^{
if (export.status == AVAssetExportSessionStatusCompleted){
//then rename mov format to the original format.
NSFileManager *manage = [NSFileManager defaultManager];
NSString *mp3Path = [NSHomeDirectory() stringByAppendingFormat:@"/Documents/%@.%@",songTitle,fileType];
NSError *error = nil;
[manage moveItemAtPath:path toPath:mp3Path error:&error];
NSLog(@"error %@",error);
}else{
NSLog(@"%@",export.error);
}
}];
}
本地音乐库导出MP3
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 今天在做一款音乐播放器的时候需要支持文件共享本地导入音乐,但是导入进去的mp3是只有歌曲名字加格式的,有些甚至歌曲...
- 原文1:http://www.cnblogs.com/wangmingshun/p/5424767.html 原文...
- git代码库回滚: 指的是将代码库某分支退回到以前的某个commit id 【本地代码库回滚】: git rese...
- 之前有个要选取本地音乐混音的功能,要读取本地库的音乐,发现取到的路径是系统处理过的路径,不能直接用, 在网上找了一...