iOS 小视频循环播放

项目中以前使用的是MPMoviePlayerController

        NSString *webPPath = [createPath stringByAppendingPathComponent:_model.VediaName];
     
        NSURL *mpUrl;
        if([fileManager fileExistsAtPath:webPPath]){//文件存在
            mpUrl = [NSURL fileURLWithPath:webPPath];  
        }else{
            mpUrl =[NSURL URLWithString:[NSString    stringWithFormat:@"%@%@",Mp4PathUrl,_model.VediaName]];
        }
        _mpc = [[MPMoviePlayerController alloc]init];
        [_headerView addSubview:_mpc.view];
        
        _mpc.contentURL = mpUrl;
        [_mpc prepareToPlay];
        _mpc.repeatMode = MPMovieRepeatModeOne;
        _mpc.scalingMode=MPMovieScalingModeAspectFit;
        [_mpc setControlStyle:MPMovieControlStyleNone];
        [_mpc play];

不幸的是在iOS13使用到MPMoviePlayerController的地方,直接抛了异常:

'MPMoviePlayerController is no longer available. Use AVPlayerViewController in AVKit.' 

于是改用AVPlayerViewController

       AVPlayer * player;
        if([fileManager fileExistsAtPath:webPPath]){//文件存在
             player = [AVPlayer playerWithURL:[NSURL fileURLWithPath:webPPath]];
        }else{
             player = [[AVPlayer alloc]initWithURL:[NSURL URLWithString:_model.VediaName]];
        }
        _mpc = [[AVPlayerViewController alloc]init];
        _mpc.showsPlaybackControls = NO;
        [_headerView addSubview:_mpc.view];
        _mpc.player = player;
        [player play];

实现循环播放

///添加通知
  [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playbackFinished:) name:AVPlayerItemDidPlayToEndTimeNotification object:_mpc.player.currentItem];
///播放完成后重复播放
-(void)playbackFinished:(NSNotification *)notification{
    [_mpc.player seekToTime:CMTimeMake(0, 1)];
    [_mpc.player play];
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容