2013-09-06 4 views
1

Я хочу загрузить видео с URL-адреса. У меня есть URL-адрес видео, но я не знаю, как его загрузить.Скачать видео с видео URL

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view from its nib. 

    strFileName = @"MyVideo"; 

    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; 
    [request setURL:[NSURL URLWithString:@"http://www.youtube.com/v/P9MeXRzKUuA?version=3&f=videos&app=youtube_gdata"]]; //strFileURL is url of your video/image 
    NSURLConnection *conection = [[[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES] autorelease]; 
    [conection start]; 
    [request release]; 

    strFilePath = [[[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:strFileName] retain]; 

    NSLog(@"file path = %@",strFilePath); 
} 

- (void) connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response 
{ 
// create 
NSLog(@"file path = %@",strFilePath); 
if (![[NSFileManager defaultManager] fileExistsAtPath:strFilePath]) { 
    [[NSFileManager defaultManager] createFileAtPath:strFilePath contents:nil attributes:nil]; 
} 

file = [[NSFileHandle fileHandleForUpdatingAtPath:strFilePath] retain];// read more about file handle 
if (file) { 
    [file seekToEndOfFile]; 
} 
NSLog(@"response received"); 

[responseData setLength:0]; 

} 

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)receivedata 
{ 
//write each data received 
if(receivedata != nil){ 
    if (file) { 
     [file seekToEndOfFile]; 
    } 
    [file writeData:receivedata]; 
    NSLog(@"data received"); 

} 
[responseData appendData:receivedata]; 
} 

- (void)connectionDidFinishLoading:(NSURLConnection*)theConnection { 
//close file after finish getting data; 

NSLog(@"response = %@",[[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]); 

[file closeFile]; 
NSLog(@"file closed"); 

NSURL *fileURL = [NSURL fileURLWithPath:strFilePath]; 

NSLog(@"fileurl = %@",fileURL); 
[webView loadRequest:[NSURLRequest requestWithURL:fileURL]]; 

} 

В методе connectiondidfinishedloading когда я печатаю ответ он является недействительным.

Пожалуйста, помогите мне с этим

+0

Похожие статьи: http://stackoverflow.com/questions/10245345/how-to-download-audio-video-files-from-internet-and-store-in-iphone-app – Mrunal

+0

необходимо выполнить поиск по " YoutubeParser ", которые помогут вам в выполнении этого простого NSMutableURLRequest, не будут работать для загрузки видео youtube –

+0

Технически простого' NSURLRequest' достаточно, чтобы загрузить его, но вам нужен синтаксический анализатор, чтобы получить фактический видеоролик. И имейте в виду, что загрузка с youtube - довольно быстрый способ получить отказ от Apple. – Desdenova

ответ

0

вы забыли инициализировать переменную responseData. Пожалуйста, сделай так.

+0

Я инициализировал responseData, но он все еще null в connectionDidFinishedLoading –

Смежные вопросы