关闭

iOS_音频下载

标签: iOS_音频下载
646人阅读 评论(0) 收藏 举报
分类:

iOS_音频下载


下载方法一:

[html] view plain copy
 print?
  1. //设置下载链接  
  2. NSURL *soundURL = [NSURL URLWithString:@"http://music.baidu.com/data/music/file?link=http://yinyueshiting.baidu.com/data2/music/99733412/87603531183600128.mp3?xcode=da76dbe4a83a8f23ffdc3037e7b25f97927dc57a6cb1af51&song_id=87603531"];  
  3. //根据链接获取数据  
  4. NSData *audioData = <span style="font-family: Arial, Helvetica, sans-serif;">[</span><span class="s1" style="font-family: Arial, Helvetica, sans-serif;">NSData</span><span style="font-family: Arial, Helvetica, sans-serif;"> </span><span class="s2" style="font-family: Arial, Helvetica, sans-serif;">dataWithContentsOfURL</span><span style="font-family: Arial, Helvetica, sans-serif;">:soundURL]</span>;  
  5.   
  6. //设置保存文件夹  
  7. NSString *docDirPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];  
  8. //设置保存路径和生成文件名  
  9. NSString *filePath = [NSString stringWithFormat:@"%@/music.mp3",docDirPath];  
  10. //保存  
  11. if ([audioData writeToFile:filePath atomically:YES]) {  
  12.     NSLog(@"succeed");  
  13. }else{  
  14.     NSLog(@"faild");  
  15. }  

下载方法二:
第二种方法网上的,开头部分稍微做了修改。这段可以显示下载的文件大小。

[objc] view plain copy
 print?
  1.         NSURL *soundURL = [NSURL URLWithString:@"http://music.baidu.com/data/music/file?link=http://yinyueshiting.baidu.com/data2/music/99733412/87603531183600128.mp3?xcode=da76dbe4a83a8f23ffdc3037e7b25f97927dc57a6cb1af51&song_id=87603531"];  
  2.         NSLog(@"soundURL:%@",soundURL);  
  3.           
  4.         NSDate *date = [NSDate date];  
  5.         NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:soundURL];  
  6.         NSURLResponse *response;  
  7.         NSError *error;  
  8.         NSData* result = [NSURLConnection sendSynchronousRequest:theRequest returningResponse:&response error:&error];  
  9.         NSLog(@"Response expects %lld bytes", [response expectedContentLength]);  
  10.         NSLog(@"Response suggested file name: %@", [response suggestedFilename]);  
  11.         if ([response suggestedFilename])  
  12. //            self.savePath = [DEST_PATH stringByAppendingString:[response suggestedFilename]];  
  13.           
  14.         if (!result)  
  15.             NSLog(@"Error downloading data: %@.", [error localizedDescription]);  
  16.         else if (response.expectedContentLength < 0)  
  17.             NSLog(@"Error with download. Carrier redirect?");  
  18.         else  
  19.         {  
  20.             NSLog(@"Download succeeded.");  
  21.             NSLog(@"Read %d bytes", result.length);  
  22.             NSLog(@"Elapsed time: %0.2f seconds.", -1*[date timeIntervalSinceNow]);  
  23.               
  24.             NSString *docDirPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];  
  25.             NSString *filePath = [NSString stringWithFormat:@"%@/music.mp3",docDirPath];  
  26.               
  27.             if ([result writeToFile:filePath atomically:YES]) {  
  28.                 NSLog(@"succeed");  
  29.             }else{  
  30.                 NSLog(@"faild");  
  31.             }  
  32.         }  



下载好的音频保存在沙河的document文件夹下

打开沙河可以看到:


若下载的音乐文件太小,请检查一下链接是否正确。我之前也是因为链接给错,下下来的music.mp3都只有1k,后来链接给对了就有3M了。上面的链接百度找的,目前可用,若不可用请自行搜索找一个。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:170993次
    • 积分:2291
    • 等级:
    • 排名:第16997名
    • 原创:5篇
    • 转载:355篇
    • 译文:0篇
    • 评论:13条
    文章分类
    最新评论