2011-12-26 74 views
2

在我的應用程序中,我想從服務器下載視頻文件並將該文件存儲在IPhone文檔目錄中。使用ASIHTTPRequest庫從服務器下載視頻文件(以MB爲單位)

對於下載,我使用ASIHTTPRequest庫,我已經下載了視頻(KB大小)並存儲到Document目錄中。

但是,當我下載視頻(MB大小)意味着,該請求需要更多的時間來下載視頻,並沒有結果(我一直在等待15分鐘以上,但沒有下載)。

我已經嘗試了下面的代碼在我的應用程序,這是從服務器單一下載。

- (IBAction)grabURLInBackground:(id)sender 
{ 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    NSURL *url = [NSURL URLWithString:@"http://mobile.aghaven.com/Downloads/video/Movie.m4v"]; 

//NSString *file = [NSString stringWithFormat:@"%@/movie.mov", documentsDirectory]; 

    ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 
    NSString* file = [documentsDirectory stringByAppendingPathComponent:@"Movie.m4v"]; 

    [request setDelegate:self]; 
    [request setTimeOutSeconds:60]; 
    [request setNumberOfTimesToRetryOnTimeout:2]; 
    [request setDownloadDestinationPath:file]; 
    [request startAsynchronous]; 
} 

- (void)requestFinished:(ASIHTTPRequest *)request 

{ 
    [[[[UIAlertView alloc] initWithTitle:@"Message" 
           message:@"Success!!!" 
           delegate:self 
         cancelButtonTitle:@"OK" 
         otherButtonTitles:nil] autorelease] show]; 
} 

這個文件中有2.2 MB大小,當我下載從服務器表示這部影片(Movie.m4v),沒有視頻下載。

請建議我如何使用ASIHTTPRequest?從服務器下載視頻文件(以MB爲單位)。

我正在使用iOS 5 sdk的XCode 4.2。

如果有示例代碼對我非常有幫助。

謝謝!

+1

嘗試使用進度var來檢查它何時停止下載。只是爲了測試目的註釋掉設置的超時時間,然後再試一次。加上嘗試下載超過2 MB的圖像... – doNotCheckMyBlog 2011-12-26 12:08:41

+0

只需要注意,ASI不再被維護。您應該嘗試使用AFNetworking。 – 2011-12-26 12:53:42

+0

很多謝謝dontCheckMyBlog,雅各布Relkin ..我會考慮你的建議.. – user2136 2011-12-27 02:45:39

回答

6
-(void)viewDidLoad 

{ 

    [super viewDidLoad]; 

    NSURL *url = [NSURL URLWithString:@"http://mobile.aghaven.com/Downloads/video/Movie.m4v"]; 

    ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 
    [request setDownloadDestinationPath:@"/Users/pk/Desktop/my_file.m4v"]; 
    [request setDelegate:self]; 
    [request startAsynchronous]; 

} 

-(void)requestFinished:(ASIHTTPRequest *)request 

{ 

    [[[[UIAlertView alloc] initWithTitle:@"Message" 
           message:@"Success!!!" 
           delegate:self 
         cancelButtonTitle:@"OK" 
         otherButtonTitles:nil] autorelease] show]; 

} 

-(void)requestFailed:(ASIHTTPRequest *)request 
{ 

    NSLog(@"%@",request.error); 

} 

你會看到該文件在桌面上。

享受!

+0

謝謝哈迪克沙阿!! ..我會檢查你的代碼和視頻文件(Movie.m4v)有2MB大小,是否有可能下載和將它存儲在IPhone文檔目錄中?..我想將視頻文件存儲在IPhone設備中,一旦它下載了。期待你的回答... – user2136 2011-12-27 02:49:25

+0

是的,當然,因爲你必須將downloaddestinationpath指向NSDocumentDirectionary。有很多代碼可用於在文檔目錄中保存文件。 – 2011-12-27 05:54:18

+0

是的謝謝!我已經搞清楚了.... – user2136 2011-12-27 08:03:55