如何在点击单元格时播放视频?

问题描述:

我想打开一个视频,当我点击第一个单元格时,我想在第二个单元格点击时打开另一个视频,等等。如何在点击单元格时播放视频?

请问有人能告诉我我该怎么做?我有这个代码。

- (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; 
} 

我知道它的很多代码,但这是表的代码。

我已经导入了MediaPlayer.framework。但我不知道如何将一个单元格链接到视频。

谢谢你的时间!

布拉姆

你还需要设置你的视图控制器为您的表视图的委托,并实现 - 在您的视图控制器的委托方法[的UITableViewDelegate的tableView:didSelectRowAtIndexPath方法。当用户点击一个表格单元格时,这将被调用。

在你执行的tableView的:didSelectRowAtIndexPath方法:,你将建立一个对的MPMoviePlayerController播放电影,这样的事情:

- (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]; 
} 

您还可能希望在http://developer.apple.com/library/ios/#documentation/MediaPlayer/Reference/MPMoviePlayerController_Class/MPMoviePlayerController/MPMoviePlayerController.html%23//apple_ref/doc/uid/TP40006953

检查出来的MPMoviePlayerController的文档