Join the social network of Tech Nerds, increase skill rank, get work, manage projects...
 
  • How to play video on click of CollectionView Cell

    • 0
    • 0
    • 0
    • 0
    • 1
    • 0
    • 0
    • 0
    • 3.01k
    Comment on it

    Hi,
    The tutorial will help you to set an image on collectionView Cell and when you click on any image play the video.

    //
    //  ViewController.m
    //  YouTubeVideo
    //
    //  Created by lalit on 4/7/15.
    //  Copyright (c) 2015 lalit. All rights reserved.
    //
    
    #import "ViewController.h"
    #import <XCDYouTubeKit/XCDYouTubeKit.h>
    
    static int count;
    
    @interface ViewController ()<UICollectionViewDataSource,UICollectionViewDelegate>
    
    {
    
    
        NSArray *urlArray;
         NSMutableArray *photoArray;
        NSURL *videoURL;
    
    }
    
    
    
    @property (strong, nonatomic) MPMoviePlayerController *videoController;
    @property (weak, nonatomic) IBOutlet UICollectionView *colView;
    -(void)playVideo:(int)index;
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
    
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
    
      photoArray = [NSMutableArray arrayWithObjects:@"like.png",@"like.png",@"like.png",@"like.png",@"like.png",@"like.png",@"like.png",@"like.png",@"like.png",@"like.png", nil];
    
        urlArray = [NSArray arrayWithObjects:@"https://www.youtube.com/watch?v=Ji4h77ZrMc8",@"https://www.youtube.com/watch?v=Ji4h77ZrMc8",@"https://www.youtube.com/watch?v=Ji4h77ZrMc8",@"https://www.youtube.com/watch?v=Ji4h77ZrMc8",@"https://www.youtube.com/watch?v=Ji4h77ZrMc8",@"https://www.youtube.com/watch?v=Ji4h77ZrMc8",@"https://www.youtube.com/watch?v=Ji4h77ZrMc8",@"https://www.youtube.com/watch?v=Ji4h77ZrMc8",@"https://www.youtube.com/watch?v=Ji4h77ZrMc8",@"https://www.youtube.com/watch?v=Ji4h77ZrMc8", nil];
    
    
        count = 10;
    
    
    
    
    
    
    
    
        UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        [button addTarget:self
                   action:@selector(aMethod:)
         forControlEvents:UIControlEventTouchUpInside];
        [button setTitle:@"Refresh" forState:UIControlStateNormal];
        button.frame = CGRectMake(80.0, 210.0, 160.0, 40.0);
        [self.colView addSubview:button];
    
    }
    
    - (void)aMethod:(UIButton*)button
    {
    
        count = count + 10;
    
        if(count >[photoArray count])
        {
            count =[photoArray count];
    
        }
        [self.colView reloadData];
    
    
    
    
    
    }
    
    
        - (void)didReceiveMemoryWarning {
            [super didReceiveMemoryWarning];
            // Dispose of any resources that can be recreated.
        }
    
        - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
            return 1;
        }
    
    
        - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
            return photoArray.count;
        }
    
    
        - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
            static NSString *identifier = @"Cell";
    
            UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:identifier forIndexPath:indexPath];
    
            UIImageView *recipeImageView = (UIImageView *)[cell viewWithTag:100];
    
    
            recipeImageView.image = [UIImage imageNamed:[photoArray objectAtIndex:indexPath.row]];
    
    
            return cell;
        }
    
    
        -(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
    
        {
            [self playVideo : (indexPath.row)];
    
        }
    
        -(void)playVideo:(int)index
        {
            NSString *videoString = urlArray[index];
    
            NSLog(@"data%@",videoString);
    
            XCDYouTubeVideoPlayerViewController *videoPlayerViewController = [[XCDYouTubeVideoPlayerViewController alloc] initWithVideoIdentifier:videoString];
            [self presentMoviePlayerViewControllerAnimated:videoPlayerViewController];
    
    
        }
    
    
        - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{
    
            return CGSizeMake(130.f, 95.f);
        }
    
        @end
    

    In this program I have use a singleUrl for all video but you can use different Url for different image.

    Add the below mention pods

    <XCDYouTubeKit/XCDYouTubeKit.h>
    
    and import the framework 
    <MediaPlayer/MediaPlayer.h>
    

 1 Comment(s)

Sign In
                           OR                           
                           OR                           
Register

Sign up using

                           OR                           
Forgot Password
Fill out the form below and instructions to reset your password will be emailed to you:
Reset Password
Fill out the form below and reset your password: