2

我正在尝试mp3使用NSURLConnection. 但是,我通常会收到超时错误。在浏览器中输入链接会显示默认播放器,但也不会加载音乐文件:

下载 mp3 并非在所有国家都是非法的

但是,如果我创建以下简单的 HTML 文件:

<html>
    <body>
        <a href="link_to_the_mp3" target="_blank">Download</a>
    </body>
</html>

然后将文件加载到 Safari 中,右键单击Download链接,然后选择Download to Computer(或任何英文名称),Safari 下载文件。

关于如何在我自己的应用程序中实现这一点的任何想法?


我尝试使用

NSData *data = [NSData dataWithContentsOfURL:url];

[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *r, NSData *data, NSError *e) { /.../ }];`

没有成功。

4

2 回答 2

2

好像你正试图用大锤击打苍蝇,使用“ NSURLConnection”。

尝试做一些更高级别的事情,例如

NSData * mp3data = [[NSData alloc] initWithContentsOfURL:options:error: ];

(这里的额外好处是您可以通过error:传递给方法的“”参数返回有用的错误。

于 2012-12-08T14:32:04.513 回答
1

这是您需要执行的操作的示例:

NSURL* url = [NSURL URLWithString:yourMp3URLString];
//URL of the mp3 file

NSString* fileName = [NSString stringWithFormat:@"%@.mp3", mp3Name];
//NSString with the name of the mp3

NSString* destinationPath = [filePathString stringByAppendingPathComponent:fileName];
//NSString with the filePathString (NSString with path destination, you could 
//change it to something like this @"User/Desktop")
//and add the NSString filename to the end of it
//so, if we have like User/Desktop it will become User/Desktop/mp3Name.mp3

NSURLRequest* request = [NSURLRequest requestWithURL:url];
NSURLDownload* download = [[NSURLDownload alloc] initWithRequest:request delegate:self];
[download setDestination:destinationPath allowOverwrite:NO];
//create the URLRequest and Download the mp3 to the destinationPath
于 2012-12-08T14:24:22.717 回答