X1Player 1.1.5

X1Player 1.1.5

fuyanzhang 维护。




X1Player 1.1.5

  • yanzhang

X1Player

X1Player 是基于 ffmpeg 封装的播放器,支持直播和录播视频播放,支持常用的播放界面控制,类似 ijkplayer。优点是体积更小,使用更快捷。

展示效果

展示效果

功能特性

  • 支持直播和点播,支持格式包括 RTMP、FLV、HLS、MP4 等
  • 支持横竖屏切换,支持清晰度切换
  • 支持小窗播放,支持大小窗切换
  • 支持设置封面图,重播图
  • 手势操作(调整亮度、声音、进度)
  • 支持播放预加载
  • 支持屏幕锁屏
  • 高可定制性,方便添加自定义图层,控件层界面可自定义
  • 支持网络状态监听
  • 新增未开始的倒计时页面的简单业务逻辑实践
  • 支持广告(开发中)

安装与集成

运行环境与配置

  • iOS 7+
  • Xcode 9+
  • 关闭 bitcode 的具体操作如下:在 Targets -> Build Settings -> Build Options 下,将 Enable Bitcode 设置为 NO 即可。

为了尽可能减小库文件的大小,SDK 仅支持 armv7/arm64 真机运行环境,不支持模拟器运行,不支持 bitcode。

安装

pod 'X1Player', '~> 1.1.5'
  • 手动安装
    • 将项目中的X1PlayerSDK文件夹下的所有文件拖入项目中
    • 需要导入播放器依赖的系统库
      • libmediaplayer.a
      • OpenAL.framework
      • VideoToolbox.framework
      • GLKit.framework
      • CoreTelephony.framework
      • libz.tbd
      • libbz2.tbd
      • libiconv.tbd

用例

结构图

创建播放器

X1Player的主类为X1PlayerView,您需要先创建它并将其添加到适当的容器View中。

self.playerView =[[X1PlayerView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_WIDTH*9/16)];

//设置代理
self.playerView.delegate = self;

[self.view addSubview:self.playerView];

开始播放

 @param url 优先播放清晰度的url url需要存在于视频清晰度字典中
 @param definitionUrlArr 视频清晰度数组
 @param title 视频标题
 @param coverImage 封面图片 也可通过coverImageView/coverImage设置图片
 @param autoplay 是否自动播放
 @param style 控制层风格 参考X1PlayerViewStyle
 
[self.playerView playWithUrl:@"http://5815.liveplay.myqcloud.com/live/5815_89aad37e06ff11e892905cb9018cf0d4_900.flv" definitionUrlArr:@[model1,model2,model3] playerTitle:@"直播清晰度切换测试" coverImage:self.image autoPlay:YES style:YZMoviePlayerControlsStyleLive];

横竖屏切换

播放器的isLocked属性标识播放器是否锁定屏幕,调用逻辑如下


-(BOOL)shouldAutorotate{
    if (self.playerView.isLocked) {
        return NO;
    }
    return YES;
}

切换视频

在播放过程中可以随时切换到另一个视频,无需停止当前播放。只需再次调用play方法传入新的url即可。

小窗播放

小窗播放是指在App内悬浮在主window上的播放器。使用小窗播放非常简单,只需要在适当的位置调用以下代码即可:

[self.playerView showFloatViewWithFrame:CGRectMake(0, 100, 160, 90) showCloseBtn:YES];

移除播放器

当不需要播放器时,调用resetPlayer清理播放器内部状态,防止干扰下次播放。

[self.playerView viewDestroy];//非常重要

License

X1Player遵循MIT许可证。有关更多信息,请参阅LICENSE文件。

更多

该项目封装时间较为仓促,如果在使用过程中遇到问题,请提交项目issue或通过以下邮箱联系:[email protected]