2017-04-24 2 views
-1

ich möchte mehrere Videos gleichzeitig wie fitStar App (mit Scrollview oder CollectionView mit Paging), aber während des Scrollens nicht Smooth, und geben Speicher Warnung Nach einiger Zeit ... bitte schlagenmehrere Videos gleichzeitig reibungslos wie Fitstar spielen

Vielen Dank im Voraus

+0

Sie bitte Ihren Code was Sie implementiert haben? –

Antwort

1

AVPlayer der Lage, sehr glatt mehrere Video in Anwendung zu spielen, aber Sie müssen Zelle für die Sammlung Ansicht verwalten. Ein weiterer Vorschlag ist, Pool für AVPlayer Objekte zu verwalten, anstatt einzelnes Objekt zu erstellen.

0

Sie können AVPlayer Verwenden Sie einfach mit diesem Code, wird es mit funktionieren

//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

danke für den Beitrag Aber das Problem ist da, weil die Anzahl der Male 'cellForRowAtIndexPath' aufgerufen, Das Objekt wird immer wieder neu erstellt. Somit wird die Zelle aufgehängt und der gleiche Film wird abgespielt, bevor der Endpunkt erreicht wird. – ajjjjjjjj

Verwandte Themen