ios上传音频文件到服务器,IOS开发:iPod的音乐库中的音频如何上传到服务器中...

最近在做的项目里有一个功能,就是拿到手机媒体库中的音频文件,并实现APP中的播放,已经转成MP3格式上传到服务器上。

首先是要能获取到ipod library中的音频。这里我用的是MPMediaQuery,在这里有一个坑,可以拿到的歌曲中有很多歌曲的AssetURL为nil,这是因为MPMediaQuery只能拿到用户通过itunes倒入进去的歌曲url。

代码如下:

// 1.创建媒体选择队列(从ipod库中读出音乐文件)

MPMediaQuery*everything = [[MPMediaQueryalloc]init];

// 2.创建读取条件(类似于对数据做一个筛选) Value:作用等同于MPMediaType枚值

MPMediaPropertyPredicate*albumNamePredicate =

[MPMediaPropertyPredicate predicateWithValue:[NSNumber numberWithInt:MPMediaTypeMusic ] forProperty: MPMediaItemPropertyMediaType];

//3.给队列添加读取条件

[everythingaddFilterPredicate:albumNamePredicate];

//4.从队列中获取符合条件的数组集合

NSArray*itemsFromGenericQuery = [everythingitems];

//5.便利解析数据

for(MPMediaItem*songinitemsFromGenericQuery) {

//歌曲名字

> NSString *songTitle = [song valueForProperty: MPMediaItemPropertyTitle];

//歌曲路径

NSString *url = [song valueForProperty: MPMediaItemPropertyAssetURL];

//歌手

NSString *songer = [song valueForProperty: MPMediaItemPropertyArtist];

}

拿到后肯定是实现APP中的播放,这个就很简单了。采用AVAudioPlayer就好了

经过一番查阅,最终找到一个办法,就是先把它转为caf 写到内存里,然后再把.caf转为.mp3 就可以上传了。这里caf转mp3需要使用第三方库:lame (lame三库的资源)

代码如下:

1.导出成caf格式,这种导出方式,文件名必须以.caf作为后缀

- (void)convertToCAF:(NSString *)songUrl name:(NSString *)songName

{

dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, 0.1 * NSEC_PER_SEC);

dispatch_after(popTime, dispatch_get_main_queue(), ^(v

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值