音频下载

- (void)requestMp3forNews:(NSString *)mp3String

{

    self.progress = 0;

    NSURL * url = [NSURL URLWithString:mp3String];

    NSURLRequest * urlRequest = [NSURLRequest requestWithURL:url];

    [NSURLConnectionconnectionWithRequest:urlRequest delegate:self];//异步下载

    self.mp3Url = mp3String;

}

 

#pragma mark - NSURLConnectionDataDelegate

-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{

    _receiveData = [[NSMutableData alloc] init];

    _allLength = [response expectedContentLength];//获取文件的大小

    self.response = response;

}

 

-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{

    

    [_receiveDataappendData:data];//下载文件的数据,下载的数据大小越来越多

    //改变进度条值

    if (_allLength) {

        self.progress = [_receiveDatalength]/(double)_allLength;//下载比例

    }

    if (self.delegate && [self.delegate respondsToSelector:@selector(downloadAudio:)]) {

        [self.delegate downloadAudio:self];

    }

}

 

-(void)connectionDidFinishLoading:(NSURLConnection *)connection{

    

    /*

     将下载好的数据写入沙盒的Documents

     */

    NSString * docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];//沙盒的Documents路径

NSLog(@"+++++docPath = %@",docPath);

    NSString *filePath=[docPath  stringByAppendingPathComponent:[self.response  suggestedFilename]];

    NSLog(@"+++++filePath = %@",filePath);//带音频文件的所有路径

    

    [_receiveDatawriteToFile:filePath atomically:YES];//将文件路径写到文件里

    self.filePath = filePath;

    

    if (self.filePath &&self.delegate && [self.delegate respondsToSelector:@selector(downloadAudio:isDownLoad:)]) {

        [self.delegatedownloadAudio:selfisDownLoad:YES];

    }

}

 

#pragma mark - NSURLConnectionDelegate

-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{

    

    //下载发生错误

    if (self.delegate && [self.delegate respondsToSelector:@selector(downloadAudio:isDownLoad:)]) {

        [self.delegatedownloadAudio:selfisDownLoad:NO];

    }

    if (error) {

        NSLog(@"%@",[error localizedDescription]);

    }

}

posted @ 2013-08-01 14:46  leevaboo  Views(217)  Comments(0Edit  收藏  举报