ios MPMoviePlayerController的一些常用属性

本文介绍了iOS平台下使用MPMovieLoadState管理视频播放器的状态,包括未知状态、可播放状态、缓冲完成状态及缓冲中状态,并展示了如何通过监听状态变化来调整播放逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

播放器的状态:
typedef NS_OPTIONS(NSUInteger, MPMovieLoadState) {
    MPMovieLoadStateUnknown        = 0, /*未知状态*/
    MPMovieLoadStatePlayable       = 1 << 0, /*加载完成,可以播放*/
    MPMovieLoadStatePlaythroughOK  = 1 << 1, /*缓冲完成,可以连续播放*/
    MPMovieLoadStateStalled        = 1 << 2, /*缓冲中*/
} NS_DEPRECATED_IOS(3_2, 9_0) __TVOS_PROHIBITED;


利用这4种状态可以在播放器即将播放时设置开始播放时间(如:播放记录),对于以上4中状态可以进行相应的判断,当状态改变时可以利用通知监听。

在Controller中注册通知

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayerLoadStateDidChange) name:MPMoviePlayerLoadStateDidChangeNotification object:nil];

在通知中实现方法完成具体的逻辑

/**
 *  视频播放状态改变
 */
- (void)moviePlayerLoadStateDidChange
{
    switch (self.krVideoPlayer.loadState)
    {
        case MPMovieLoadStatePlayable:
        {
             /** 可播放 */;
            NSLog(@"可以播放");
        }
            break;
        case MPMovieLoadStatePlaythroughOK:
        {
            /** 状态为缓冲几乎完成,可以连续播放 */;
            NSLog(@"状态为缓冲几乎完成,可以连续播放");
        }
            break;
        case MPMovieLoadStateStalled:
        {
             /** 缓冲中 */
            NSLog(@"缓冲中");
        }
            break;
        case MPMovieLoadStateUnknown:
        {
            /** 未知状态 */
            NSLog(@"未知状态");
        }
            break;
    }
}


currentPlaybackTime:播放器当前播放时间
duration:播放视频的总时间
以上2个属性必须在播放器缓冲完成是才可以得到,不然为0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值