¿Jugar datos de video descargados con AVPlayer?

Estoy intentando download videos del server, almacenarlos y luego reproducirlos con AVPlayer . Lo que tengo hasta ahora es:

  1. Utilizo AFNetworking para download datos de video y lo tengo almacenado como NSData dentro de mi NSDictionary of resources
  2. Creo mi TargetOverlayView que muestra contenido de resources (imágenes, text, reproducción de audio y … video, ojalá pronto)
  3. Cuando se trata de mostrar video, escribí el método:

     (void)playVideo:(NSData*)video{ NSLog(@"TargetOverlayView: playVideo"); if (!video) { NSLog(@"TargetOV: nothing to play"); [vPlayerLayer removeFromSuperlayer]; vPlayerLayer = nil; vPlayer = nil; return; } //save nsdata into file NSLog(@"{SAVE} saving video data into file..."); NSFileManager *fileManager = [NSFileManager defaultManager]; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *filePath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"video.3gp"]]; [fileManager createFileAtPath:filePath contents:video attributes:nil]; AVPlayerItem *playerItem = [AVPlayerItem playerItemWithURL:[NSURL URLWithString:@"http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8"]]; vPlayer = [[AVPlayer alloc] initWithPlayerItem:playerItem];//[AVPlayer playerWithPlayerItem:playerItem]; vPlayerLayer = [[AVPlayerLayer alloc] init];//[AVPlayerLayer playerLayerWithPlayer:vPlayer]; vPlayerLayer.player = vPlayer; [vPlayerLayer setFrame:self.frame]; [vPlayerLayer setBackgroundColor:[[UIColor purpleColor] CGColor]]; [self.layer addSublayer:vPlayerLayer]; [vPlayer addObserver:self forKeyPath:@"status" options:0 context:NULL]; } 

Agregué también un observador, así que sé cuándo jugarlo:

 - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { if ([keyPath isEqualToString:@"status"]) { if (vPlayer.status == AVPlayerStatusReadyToPlay) { NSLog(@"video ready!"); [vPlayer play]; } else if (vPlayer.status == AVPlayerStatusFailed) { NSLog(@"vide faield: %@", [vPlayer.error localizedDescription]); } } 

}

Me gustaría poder download videos mp4 y 3gp del server y reproducirlos, pero solo cuando le doy esto: http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8 Enlace Apple dado funciona … No puedo gestionar reproducir los datos descargados de 3gp desde el filepath (¿es posible reproducir 3gp u otros formattings?). ¿Hay alguna manera de reproducir videos descargados? No necesito streaming (no roght ahora al less). Cada ayuda muy apreciada.

EDIT: cambié ese bit sobre hacer que el file a:

 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *docDir = [paths objectAtIndex:0]; NSString *filePath = [docDir stringByAppendingPathComponent:@"video.mp4"]; ; 

y aún no funciona …

EDIT2: Escribí el enlace a este file en el server; luego funcionó (solo funciona con mp4), pero necesito download datos y reproducirlos desde allí, no solo vincularlos con el recurso …