2010-11-02 7 views
1

Je veux ouvrir une vidéo lorsque je tape sur la première cellule, et je veux ouvrir une autre vidéo lorsque je tape sur la deuxième cellule et ainsi de suite.Comment lire une vidéo lorsque vous appuyez sur une cellule?

Quelqu'un peut-il s'il vous plaît ell moi comment je dois faire cela? J'ai ce code. Je sais que c'est beaucoup de code mais c'est le code de la table.

- (NSInteger)tableView:(UITableView *)tableView 
numberOfRowsInSection:(NSInteger)section 
{ 
    return 3;//[array count]; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView 
     cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    UITableViewCell *cell = 
    [tableView dequeueReusableCellWithIdentifier:@"cell"]; 

    // create a cell 
    if (cell == nil) 
    { 
     cell = [[UITableViewCell alloc] 
       initWithStyle:UITableViewCellStyleSubtitle 
       reuseIdentifier:@"cell"]; 
    } 

    //retrieve an image/ Zet een afbeelding naast de titel 
    NSString *imagefile = [[NSBundle mainBundle] 
          pathForResource:@"cellimage" ofType:@"png"]; 
    UIImage *ui = [[UIImage alloc] initWithContentsOfFile:imagefile]; 
    //set the image on the table cell/ zet hem in de tabel 
    cell.imageView.image = ui; 


    //set the main text/hoofd tekst 
    cell.textLabel.text = [exercises objectAtIndex:indexPath.row]; 

    //set the subtitle text/ ondertekst 
    cell.detailTextLabel.text = @"Management training", @"Ondertiteling hier", @"Ondertiteling hier"; 



    //accessory type /zijn de navigatie pijltjes, er zijn 3 verschillende 
    cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton; 

    //return the cell 
    //cell.textLabel.text = [array objectAtIndex:indexPath.row]; 
    return cell; 
} 

/* 
// The designated initializer. Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad. 
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { 
    if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) { 
     // Custom initialization 
    } 
    return self; 
} 
*/ 


// Implement viewDidLoad to do additional setup after loading the view, typically from a nib. 
- (void)viewDidLoad { 
    [super viewDidLoad]; 
    exercises = [[NSArray alloc] 
       initWithObjects:@"BAZO", @"Ontslag gesprek", 
       @"Management training",nil]; 

    self.title = @"Training lijst"; 

    //Probeerzel 
    /*array = [[NSMutableArray alloc] init]; 
    [array addObject:@"Bazo"]; 
    [array addObject:@"secondmovie"];*/ 


    // Uncomment the following line to display an Edit button in the navigation bar for this view controller. 
    // self.navigationItem.rightBarButtonItem = self.editButtonItem; 
} 

// Customize the number of sections in the table view. 
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 
    return 1; 
} 

J'ai déjà importé le MediaPlayer.framework. mais je ne sais pas comment lier une cellule à une vidéo.

Merci pour votre temps!

Bram

Répondre

2

Vous devrez également définir votre contrôleur de vue en tant que délégué de votre point de vue de la table, et mettre en œuvre le - [UITableViewDelegate tableView: didSelectRowAtIndexPath:] méthode déléguée dans votre contrôleur de vue. Cela sera appelé lorsque l'utilisateur tape sur l'une des cellules de votre tableau.

Dans votre implémentation de tableView: didSelectRowAtIndexPath :, vous allez mettre en place un MPMoviePlayerController pour jouer votre film, quelque chose comme ceci:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    // First, get the URL for the video file you want to play. For example, if you have an array of the movie file URLs, you'd do this: 
    NSURL * movieURL = [_movieFileURLs objectAtIndex:indexPath.row]; 

    // Now set up the movie player controller and play the movie. 
    MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL: movieURL]; 
    [[player view] setFrame: [self.view bounds]]; // frame must match parent view 
    [self.view addSubview: [player view]]; 
    [player play]; 
} 

Vous pouvez également consulter la documentation sur MPMoviePlayerController à http://developer.apple.com/library/ios/#documentation/MediaPlayer/Reference/MPMoviePlayerController_Class/MPMoviePlayerController/MPMoviePlayerController.html%23//apple_ref/doc/uid/TP40006953