2012-03-29 8 views
2

In meiner App lade ich ein Video aus dem Internet herunter und ich möchte es herunterladen.Ein Video abspielen, bevor es zum Herunterladen fertig ist.

Ich verwende:

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

die Daten i mit in eine Datei bekommen zu speichern:

if (currentBytes == 0) { 
     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
     NSString *fileName = [NSString stringWithFormat:@"%@.mp4", [[paths objectAtIndex:0] stringByAppendingPathComponent:@"1"]]; 
     [[NSFileManager defaultManager] createFileAtPath:fileName contents:data attributes:nil]; 
     handle = [[NSFileHandle fileHandleForUpdatingAtPath:fileName] retain]; 
     [handle seekToEndOfFile]; 
    }else { 
     if (!data) { 
      NSLog(@""); 
     } 
     [handle writeData:data]; 
    } 
    currentBytes++; 

und dann, wenn ich aus dem Video zu 50% bekam, die heruntergeladen wurde ich mag Starten Sie es mit AVPlayer abspielen:

if ((percentComplete > 50)&&(flag == NO)) { 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *fileName = [NSString stringWithFormat:@"%@.mp4", [[paths objectAtIndex:0] stringByAppendingPathComponent:@"1"]]; 

    audioPlayer = [[AVPlayer playerWithURL:[NSURL fileURLWithPath:fileName]] retain]; 
    avPlayerLayer = [[AVPlayerLayer playerLayerWithPlayer:audioPlayer] retain]; 
    [avPlayerLayer setFrame:self.view.bounds]; 

    [audioPlayer play]; 

    [[self.view layer] addSublayer:avPlayerLayer]; 


    flag = YES; 
} 

eine Idee, warum es nicht funktioniert?

+0

Könnte es sein, dass AvPlayer die Datei überprüft, bevor es zu spielen tats? Vielleicht erwartet der AvPlayer etwas Besonderes am Ende der Datei. - Nur Ideen. – Max

Antwort

0

Sie können ein Video nicht so spielen. Wenn Sie so wie Sie herunterladen, müssen Sie bis zum Ende warten.

Wenn wir darüber nachdenken, wie Sie möchten, sprechen Sie über das Streaming eines Videos zu Ihrer Anwendung. Also hier ist ein Beispiel: http://geobray.com/2010/03/26/live-tv-streaming-to-iphone-with-http/

und es zeigt, wie man Streaming-Dateien erstellen, denke ich.

hoffe, das hilft ..