Reproducción de video desde UITableView

Mi objective principal es poder hacer clic en un elemento de vista de tabla y cargar un video. La vista de la tabla se completa con el contenido del directory de documentos y he podido hacer esto con éxito y agregar el nombre del file a la label de la celda, lo he hecho con el siguiente código:

void)viewDidLoad { [super viewDidLoad]; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder NSString *dataPath = documentsDirectory; filePathsArray = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:dataPath error:nil]; } -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return [filePathsArray count]; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *simpleTableIdentifier = @"SimpleTableCell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier]; if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier]; } cell.textLabel.text = [filePathsArray objectAtIndex:indexPath.row]; return cell; } 

Sin embargo, la parte que encuentro difícil es abrir la parte del file. Este es mi código hasta ahora:

 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { NSLog(@"didSelectRowAtIndexPath"); myURL=[NSURL URLWithString:[filePathsArray objectAtIndex:indexPath.row]]; MPMoviePlayerController *moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:myURL]; [self.view addSubview:moviePlayerController.view]; moviePlayerController.fullscreen = YES; [moviePlayerController play]; [self setController:moviePlayerController]; [tableView deselectRowAtIndexPath:indexPath animated:YES]; } 

Lo que ocurre cuando un usuario hace clic en una celda UITableView es que el reproductor de video se abre a pantalla completa y simplemente dice "cargando …" todo el time y el video no se carga, no se registran errores en el depurador. ¿A qué debe ajustarse la variable myURL? Cualquier ayuda sería muy apreciada.

Finalmente lo resolvió después de un time que había dos problemas, solo buscaba el nombre, no el directory de files completo, por ejemplo, var / mobile … y también había un problema con el reproductor de video, este es el código de trabajo para cualquiera que quiera hacer lo mismo que yo:

 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { NSLog(@"didSelectRowAtIndexPath"); NSString *currentFileName = [filePathsArray[indexPath.row] lastPathComponent]; NSString *documentsDirectoryPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; NSString *filePath = [documentsDirectoryPath stringByAppendingPathComponent:currentFileName]; //Play the movie now NSURL *videoURL =[NSURL fileURLWithPath:filePath]; MPMoviePlayerViewController *videoPlayerView = [[MPMoviePlayerViewController alloc] initWithContentURL:videoURL]; videoPlayerView.moviePlayer.fullscreen=TRUE; [self presentMoviePlayerViewControllerAnimated:videoPlayerView]; [videoPlayerView.moviePlayer play]; [tableView deselectRowAtIndexPath:indexPath animated:YES]; } 

Un NSURL es diferente de una ruta que contiene el protocolo utilizado para acceder al recurso. Por ejemplo, http:// en http://stackoverflow.com

Creo que el problema es que estás creando una URL de una cadena de ruta, testing esto:

 NSString *urlStr = [NSString stringWithFormat:@"file://%@", [filePathsArray objectAtIndex:indexPath.row]]; myURL = [NSURL URLWithString:urlStr];