11

में सामग्री डाउनलोड किया मैं iphone में लागू एक म्यूजिक प्लेयर (SDK 4) है और यह दोनों के Mp3 (मक्खी पर ट्रांसकोड) या कच्चे प्रगतिशील डाउनलोड स्ट्रीमिंग के साथ काम करता है।कैश प्रगतिशील MPMoviePlayerController

वहाँ तो यह नहीं करता है पूरी सामग्री redownload कैश हो जाने की progressivedownloaded सामग्री (जो मैं सीधे नियंत्रित न) बनाने के लिए वैसे भी है?

या वहां नियंत्रित करने के लिए एक वैश्विक कैश सेटिंग है? (एक तरफ ध्यान दें पर, मैं ASIHTTP एपीआई का इस्तेमाल किया मेरी HTTP सर्वर और उपयोग डेटा संपर्क करने के लिए है कि कैशिंग के लिए अनुमति देने)।

अग्रिम धन्यवाद।

उत्तर

1

आप फाइल को सेव करें और इसे वापस खेलने के लिए NSURLConnection का उपयोग कर सकते हैं।

उदाहरण:

-(void)downloadFileAtPath:(NSString *)path 
{ 
    NSURL *url     = [NSURL URLWithString:path];  
    NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:url]; 
     NSURLConnection* connection = [[NSURLConnection alloc] initWithRequest:req delegate:self]; 
    [connection start]; 
} 

-(void)connection:(NSURLConnection*)connection didReceiveResponse:(NSURLResponse*)response 
{ 
    //NSLog(@"%s", __PRETTY_FUNCTION__); 
    [[NSFileManager defaultManager] createFileAtPath:pathForCurrentFile contents:nil attributes:nil]; 
    currentFile = [NSFileHandle fileHandleForUpdatingAtPath:pathForCurrentFile]; 
    if (currentFile) 
    { 
     [currentFile seekToEndOfFile]; 
    } 
} 

-(void)connection:(NSURLConnection*)connection didReceiveData:(NSData*)data 
{ 
    //NSLog(@"%s", __PRETTY_FUNCTION__); 
    if(currentFile != nil){ 
     if (currentFile) { 
      [currentFile seekToEndOfFile]; 
     } 
     [currentFile writeData:data]; 
    } 
} 

-(void)connection:(NSURLConnection*)connection didFailWithError:(NSError*)error 
{ 
    NSLog(@"%s, %@", __PRETTY_FUNCTION__, error); 
} 

- (void)connectionDidFinishLoading:(NSURLConnection *)connection 
{ 
    [currentFile closeFile]; 
} 

नीचे प्लेबैक

//Playback 
NSString *loopFilePath = [[self applicationDocumentsDirectory].path stringByAppendingPathComponent:vidFileName]; 

NSURL *vidURL = [NSURL fileURLWithPath:vidFilePath]; 

self.vidController = [[MPMoviePlayerController alloc] initWithContentURL:vidURL]; 
self.vidController.view.frame = CGRectMake(0, 0, 640, 480); 
self.vidController.controlStyle = MPMovieControlStyleDefault; 
[self.view addSubview:self.vidController.view]; 
[self.vidController prepareToPlay]; 
[self.vidController play]; 
+0

आप इस काम करता है परीक्षण किया है के लिए कोड है? – vaughan

+0

हैलो, आप इस समाधान के साथ सफलता है? – Bkillnest