2017-04-24 1 views
-1

je veux lire plusieurs vidéos simultanément comme FITSTAR App (en utilisant ScrollView ou CollectionView avec pagination), mais pendant le défilement de son pas lisse, et donner un avertissement de mémoire Après un certain temps ... s'il vous plaît Suggérezjouer plusieurs vidéos simultanément Smoothly Comme FITSTAR

Merci à l'avance

+0

pouvez-vous s'il vous plaît partager votre code ce que vous avez mis en œuvre? –

Répondre

1

AVPlayer capable de jouer plusieurs vidéo dans l'application très facilement, mais vous devez gérer la cellule pour une vue de collection. Une autre suggestion consiste à gérer le pool pour les objets AVPlayer au lieu de créer un seul objet.

0

Vous pouvez utiliser AVPlayer simplement avec ce code, il va travailler avec bien

//Change the return value how many video screen you want 
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    return 5; 
} 

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

    myCell *cell = [myTable dequeueReusableCellWithIdentifier:@"cell"]; 

    //You can set multiple video path using array 

    NSString *filePath = [[NSBundle mainBundle] pathForResource:@“myVideo” ofType:@"MOV"]; 

    NSURL *url = [NSURL fileURLWithPath:filePath]; 

    cell.videoPlayer = [[AVPlayer alloc]init]; 
    cell.avLayer = [[AVPlayerLayer alloc]init]; 

    NSLog(@"url %@",url); 

    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul); 

    dispatch_async(queue, ^{ 

     dispatch_sync(dispatch_get_main_queue(), ^{ 


      cell.videoPlayer = [AVPlayer playerWithURL:url]; 

      // create a player view controller 
      AVPlayerViewController *controller = [[AVPlayerViewController alloc]init]; 
      controller.player = cell.videoPlayer; 
      [cell.videoPlayer play]; 

      // show the view controller 
      [self addChildViewController:controller]; 
      [cell.myView addSubview:controller.view]; 
      controller.view.frame = cell.myView.frame; 

     }); 
    }); 

     return cell; 
} 
+0

merci pour le post Mais le problème est là, car nombre de fois 'cellForRowAtIndexPath' appelé, L'objet sera créé encore et encore. Ainsi, il va accrocher la cellule et commencer à jouer le même film avant d'atteindre le point final. – ajjjjjjjj