2013-05-07 4 views
5

В моем приложении я пытаюсь воспроизвести несколько видеороликов в UITableViewCell для этого. Я использую MPMoviePlayerController, он воспроизводит видео без каких-либо проблем. но он воспроизводит одно видео за раз, а в другой ячейке я получаю черный экран, предположим, что в первый раз видна одна ячейка, которую воспроизводит видео, но как только я прокручиваю вторую строку, первый вид видео сотовой ячейки исчезает с черным экраном. Я не понимаю, как сделать видимым все видео, даже если я просматриваю представление таблицы. это код, я использую для воспроизведения видео в пользовательской ячейке:Несколько проблем с воспроизведением видео в UITableViewCell

Пользовательские инициализации Cell:

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 
{ 
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 
    if (self){ 
     NSArray *nibArray=[[NSBundle mainBundle]loadNibNamed:@"CustomCell" owner:self options:nil]; 
     self=[nibArray objectAtIndex:0]; 

     _player = [[MPMoviePlayerController alloc] init]; 
     _player.view.frame = CGRectMake(0,0,320,300); 
     _player.movieSourceType = MPMovieSourceTypeStreaming; 
     [_player setContentURL:[NSURL URLWithString:@"http://files.parse.com/ef5649ee-75c6-4c76-ba3b-37be4d281125/b35589f7-c0aa-4ca8-9f7c-fd31b2dc8492-vedioTeaser.mov"]]; 
     [_player prepareToPlay]; 
     [_player play]; 
     [self addSubview:_player.view]; 
    } 
    return self; 
} 

метод CellForRowAtIndexPath

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"Cell"; 

    CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if(cell == nil){ 
     cell = [[CustomCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier]; 
     cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 
    }else{ 
     [self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObjects:[NSIndexPath indexPathForRow:indexPath.row inSection:indexPath.section], nil] withRowAnimation:UITableViewRowAnimationAutomatic]; 
    } 

    cell.selectionStyle = UITableViewCellSelectionStyleNone; 
    return cell; 
} 

Любая помощь будет высоко оценен.

+0

Привет, @vinod - вы нашли изящное решение для этого? Я тоже борюсь с этим (мне нужны элементы управления, поэтому необработанное AVFoundation не подходит) – Boaz

ответ

10

Вы можете использовать AVFoundation framework для одновременного воспроизведения нескольких видеороликов. Пошаговый и полный исходный код о том, как это сделать: multiple-video-playback-on-ios

Вы не можете использовать MPMoviePlayerController. В documentation говорится, что ясно ..

Хотя вы можете создать несколько объектов MPMoviePlayerController и представить свои мнения в интерфейсе, только один игрок кино в то время, может сыграть свое кино.

надеюсь, что это вам поможет.

+0

в исходном коде использует разные контроллеры для воспроизведения фильма не один. –

Смежные вопросы