技术文档iOS点点滴滴iOS 开发

获取MPMoviePlayerController当前播放状态

2015-12-19  本文已影响1860人  Lonely__M

使用MPMoviePlayerController播放视频时,需要监听当前视频的播放状态,从而做相应的逻辑判断,比如在当前网络环境不好的状况下,需要显示加载状态提示用户,当网速良好的情况下,自动进行播放视频,其实MPMoviePlayerController中已经有相关属性可以监听,具体的请看如下代码

loadState
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;
Paste_Image.png Paste_Image.png

在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;
    }
}

记录点滴,与君共勉。

Tip


学习的路上总是曲折的,每个人都是从菜鸟过来的,遇到问题总是希望能够与他人沟通交流,而在各种群里问了问题就石沉大海,所以想建一个技术交流为主的群,遇到的问题可以记录下来分享给他人,方便了自己,也造就了他人,不管怎样,记录点滴,但愿与君共勉

*QQ群号:527377492 *

Paste_Image.png
上一篇 下一篇

猜你喜欢

热点阅读