Skip to content

基于AVPlayer封装的视频播放器 、一句话即可实现视频的播放 支持横屏、竖屏,监听屏幕旋转,上下滑动调节音量、屏幕亮度,左右滑动调节播放进度,快进画面预览等

Notifications You must be signed in to change notification settings

enamor/NIPlayer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 

Repository files navigation

title date categories tags description
一句话实现AVPlayer视频播放
2017-05-01 08:28:57 -0700
iOS
Objective-C
由于近期项目和视频相关的比较多,而项目中别人封装的不甚满意,所以自己进行了封装,希望有更好的扩展性,同时希望大家多多提取意见,以便于更好的封装。

基于AVPlaye封装的视频播放器 、一句话即可实现视频的播放 支持横屏、竖屏,监听屏幕旋转,上下滑动调节音量、屏幕亮度,左右滑动调节播放进度,快进画面预览等

使用说明:

播放器需要传入一view 自动适应view的尺寸 为了简化全屏模式统一使用屏幕旋转的方式进行适配全屏、目前控制层UI未做详细拆分,后期将逐步优化、只为做最简单的视频播放器

  • 单利模式
//此次一句话即可实现播放 同时适配横竖屏、竖立的视频
[[NIPlayer sharedPlayer] playWithUrl:_url onView:playView];

//单例需要手动释放
[[NIPlayer sharedPlayer] releasePlayer];
  • 普通模式(自动释放内存)
_player = [[NIPlayer alloc] init];
[_player playWithUrl:_url onView:playView];
  • 第三方法依赖

布局:Masonry

状态栏旋转需要控制器中重写方法 且需要在info.Plist 添加 View controller-based status bar appearance 设置成No,默认为Yes

- (BOOL)shouldAutorotate {
    return NO;
}
//对播放器内部对以下状态做了监听,可以更好的自己处理各种情况
typedef NS_ENUM(NSInteger, NIAVPlayerStatus) {
    NIAVPlayerStatusLoading = 0,     // 加载视频
    NIAVPlayerStatusReadyToPlay,     // 准备好播放
    NIAVPlayerStatusIsPlaying,       // 正在播放
    NIAVPlayerStatusIsPaused,        // 已经暂停
    NIAVPlayerStatusPlayEnd,         // 播放结束
    NIAVPlayerStatusCacheData,       // 缓冲视频
    NIAVPlayerStatusCacheEnd,        // 缓冲结束
    NIAVPlayerStatusPlayStop,        // 播放中断 (多是没网)
    NIAVPlayerStatusItemFailed,      // 视频资源问题
    NIAVPlayerStatusEnterBack,       // 进入后台
    NIAVPlayerStatusBecomeActive,    // 从后台返回
};

温馨提示:

1、为了处理视频全屏模式后台进入前台可以平滑的进入(无启动页)对AppDelegate 添加了分类处理 重写了以下方法

//一般状态此处用户无需处理
- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {
    
    if (self.allowRotationType == AllowRotationMaskPortrait) {
        return UIInterfaceOrientationMaskPortrait;
    }else if (self.allowRotationType == AllowRotationMaskAllButUpsideDown) {
        return  UIInterfaceOrientationMaskAllButUpsideDown;
    }else {
        return UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight;
    }
}

2、APP支持方向设置为竖屏即可

预览:

QQ交流群:518557977

博客地址:http://oxy.pub

About

基于AVPlayer封装的视频播放器 、一句话即可实现视频的播放 支持横屏、竖屏,监听屏幕旋转,上下滑动调节音量、屏幕亮度,左右滑动调节播放进度,快进画面预览等

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages