Sto provando a riprodurre video nelle celle stesse anziché a schermo intero. Sto usando MPMoviePlayerController
per questo scopo.riproduzione di video in UITableViewCell
ho definito
MPMoviePlayerController *moviePlayer;
nella sezione implementazione
Poi nel cellForRowAtIndexPath:
faccio questo
cell = [tableView dequeueReusableCellWithIdentifier:simpleTableVideoIdentifier];
if (cell == nil){
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableVideoIdentifier];
}
NSDictionary *dictionary = [dataArray objectAtIndex:indexPath.section];
NSDictionary *data = dictionary;
if ([data[@"type_of_post"] isEqualToString:@"video"]) {
NSString *path = data[@"video"];
NSURL *videoURL = [NSURL URLWithString:path];
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:videoURL];
[moviePlayer setControlStyle:MPMovieControlStyleNone];
moviePlayer.scalingMode = MPMovieScalingModeAspectFit;
[moviePlayer.view setFrame:CGRectMake(10.0, 0.0, 300.0 , 400.0)];
[cell addSubview:moviePlayer.view];
moviePlayer.view.hidden = NO;
[moviePlayer prepareToPlay];
[moviePlayer play];
}else{
//do something else
}
e ovviamente gli assegno un'altezza in heightForRowAtIndexPath:
ma il punto come MPMoviePlayerController *moviePlayer;
è definito globalmente, non si attacca solo alla sua cella ma continua a scendere mentre scorro verso il basso. Non sono sicuro di quale altro modo di implementare questo diverso da quello che ho descritto, che chiaramente non sembra il modo giusto per farlo. Mi piacerebbe davvero che qualcuno mi guidasse nella giusta direzione.
Grazie
matt, come lo rimuoverò comunque? – Jonathan
con '[cell.contentView removeFromSuperview]'? – Jonathan
Lo faccio, ma quando si scorre verso il basso e si scorre di nuovo, il video non è più nella cella – Jonathan