Question

i want to play a video in a frame of a view, but the following code does not work. can you help me?

MPMediaItem *song = [allVideos objectAtIndex:indexPath.row];
NSLog(@"%@",[song valueForProperty:MPMediaItemPropertyAssetURL]);
NSURL *url = [song valueForProperty:MPMediaItemPropertyAssetURL];
AVPlayer *player = [[AVPlayer alloc] init];
AVURLAsset *avAsset = [AVURLAsset URLAssetWithURL:url options:nil];
AVPlayerItem *playerItem = [[AVPlayerItem alloc] initWithAsset:avAsset];
[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(playerItemDidReachEnd:)
                                             name:AVPlayerItemDidPlayToEndTimeNotification
                                           object:playerItem];
player = [[AVPlayer alloc]initWithPlayerItem:playerItem];

//[player seekToTime:kCMTimeZero];
[player play];
Was it helpful?

Solution

You need to use AVPlayerLayer, add this

AVPlayerLayer *playerLayer=[AVPlayerLayer playerLayerWithPlayer:player];
[self.view.layer addSublayer:playerLayer];

to your code.

OTHER TIPS

Have you try to use MPMoviePlayerController as like below

    MPMoviePlayerController * _player = [[MPMoviePlayerController alloc] initWithContentURL:fileURL];

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlaybackComplete:) name:MPMoviePlayerPlaybackDidFinishNotification object:nil];

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlaybackChanged:) name:MPMoviePlayerPlaybackStateDidChangeNotification object:nil];

    CGRect frame = self.frame;

    frame.origin = CGPointZero;

    _player.view.frame = frame;

    [self.view addSubview:_player.view];

    [_player prepareToPlay];

    [_player play];

Try this one ..

MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:path]];
player.view.frame = CGRectMake(0,45, 1024, 723); // take your require frame size of player
[player.view setBackgroundColor:[UIColor clearColor]];
player.repeatMode=MPMovieRepeatModeNone;
[self.view addSubview:player.view];
[player play];
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top