2013-05-07 13 views
5

W mojej aplikacji próbuję odtworzyć wiele filmów w numerze UITableViewCell, ponieważ używam tego MPMoviePlayerController, który odtwarza wideo bez żadnego problemu. ale odtwarzam jeden film naraz i w innej komórce dostaję czarny ekran, przypuśćmy, że za pierwszym razem jedna komórka jest widoczna, że ​​odtwarza wideo, ale gdy tylko przewijam drugi wiersz, widok pierwszej komórki wideo znika z czarnym ekranem. Nie wiem, jak wyświetlić cały widok wideo, nawet jeśli przewijam widok tabeli. jest to kod używam do odtwarzania wideo w niestandardowych komórki:Problem z wielokrotnym odtwarzaniem wideo w UITableViewCell

klienta inicjalizacji komórek:

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

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

Każda pomoc będzie bardzo mile widziane.

+0

Hej @odod - czy znalazłeś w końcu eleganckie rozwiązanie? Ja też się z tym zmagam (potrzebuję kontroli tak surowej AVFoundation nie jest dobra) – Boaz

Odpowiedz

10

Możesz użyć AVFoundation framework do jednoczesnego odtwarzania wielu filmów. Krok po kroku i pełny kod źródłowy, aby to zrobić: multiple-video-playback-on-ios

Nie można użyć MPMoviePlayerController. W documentation stwierdza, że ​​jasno ..

Chociaż można utworzyć wiele obiektów MPMoviePlayerController i przedstawić swoje opinie w interfejsie, tylko jeden odtwarzacz filmów naraz może odgrywać film.

mam nadzieję, że ci to pomoże.

+0

w kodzie źródłowym używa różnych kontrolerów do odtwarzania filmu, nie jednego. –

Powiązane problemy