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?
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