189 8069 5689

iOS短视频源码开发MPMoviePlayerController


文:布谷惠泽/来源:山东布谷鸟网络

文登ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!

MPMoviePlayerController 用来播放视频,在iOS9之后被弃用(iOS9之后苹果推荐我们使用AVPlayer,AVPlayer相对复杂但灵活),由于APP往往要兼容iOS9之前的版本,所有MPMoviePlayerController还是很重要的。
在我的另一篇文章中分享了一个 基于MPMoviePlayerController 的播放器 ,大家可以看看,目前还不完整。小伙伴们可以关注一下我的简书。谢谢

MPMoviePlayerController的简单使用
需要添加这个框架MediaPlayer.framework
#import 

#pragma mark - 本地
    
    NSString* _moviePath=[[NSBundle mainBundle]pathForResource:@"popeye" ofType:@"mp4"];
    self.player=[[MPMoviePlayerController alloc]initWithContentURL:[NSURL fileURLWithPath:_moviePath]];
    [self.view addSubview:self.player.view];
    
    self.player.view.frame=CGRectMake(0, 0, self.view.frame.size.width, CGRectGetWidth(self.view.frame)*(9.0/16.0));
    self.player.movieSourceType = MPMovieSourceTypeFile;// 播放本地视频时需要这句
//    self.player.controlStyle = MPMovieControlStyleNone;// 不需要进度条
    self.player.shouldAutoplay = YES;// 是否自动播放(默认为YES)
//    self.player.scalingMode=MPMovieScalingModeAspectFill;
    [self.player prepareToPlay];//缓存
//    [self.player play];//可以不加这句

#pragma mark - 网络
 
    NSURL* url = [NSURL URLWithString:@"https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4"];
    _player = [[MPMoviePlayerController alloc] initWithContentURL:url];
    [self.view addSubview:self.player.view];
 
    self.player.view.frame=CGRectMake(0, 0, self.view.frame.size.width, CGRectGetWidth(self.view.frame)*(9.0/16.0));
    [self.player prepareToPlay];
    [self.player play];

#pragma mark - 直播
    NSURL* url = [NSURL URLWithString:@"http://live.hkstv.hk.lxDNS.com/live/hks/playlist.m3u8"];
    _player = [[MPMoviePlayerController alloc] initWithContentURL:url];
    [self.view addSubview:self.player.view];
    
    self.player.view.frame=CGRectMake(0, 0, self.view.frame.size.width, CGRectGetWidth(self.view.frame)*(9.0/16.0));
    self.player.controlStyle=MPMovieSourceTypeStreaming;//直播
    [self.player prepareToPlay];
//    [self.player play];
MPMoviePlayerController提供了很多通知,这里我就简单的监听2个。我们可以通过监听到的信息做相应的处理。
#pragma mark - Notification
    
    //监听视频播放结束
    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(endPlay) name:MPMoviePlayerPlaybackDidFinishNotification object:nil];
    
    //监听当前视频播放状态
    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(loadStateDidChange:) name:MPMoviePlayerLoadStateDidChangeNotification object:nil];
 
#pragma mark - Notification function
 
-(void)endPlay
{
    NSLog(@"播放结束");
}
 
-(void)loadStateDidChange:(NSNotification*)sender
{
    switch (self.player.loadState) {
        case MPMovieLoadStatePlayable:
        {
            NSLog(@"加载完成,可以播放");
        }
            break;
        case MPMovieLoadStatePlaythroughOK:
        {
            NSLog(@"缓冲完成,可以连续播放");
        }
            break;
        case MPMovieLoadStateStalled:
        {
            NSLog(@"缓冲中");
        }
            break;
        case MPMovieLoadStateUnknown:
        {
            NSLog(@"未知状态");
        }
            break;
        default:
            break;
    }
}
 
#pragma mark - dealloc
 
- (void)dealloc
{
    [[NSNotificationCenter defaultCenter]removeObserver:self];
}

文章题目:iOS短视频源码开发MPMoviePlayerController
标题来源:http://jkwzsj.com/article/jpssod.html

其他资讯