Skip to content

ksvc-backup/KSYMediaPlayerKit_iOS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 

Repository files navigation

#KSYMediaPlayerKit_iOS

##LIBRARY更新日志

2016-01-22

V 1.0.0 版本发布

  • 添加了对应场景(手机直播及回看,游戏直播,在线视频点播及短视频)的视觉效果及UI细化
  • 修改了断网重连情况播放器不能重连的bug
  • 添加了初始化播放器鉴权的逻辑

2016-01-05

  • V 0.1.0 初版本发布,提供对应场景(手机直播及回看,游戏直播,在线视频点播及短视频)的基本UI以及播放器状态控制逻辑

##LIBRARY使用说明 ###适用场景说明 本项目为基于KSY MediaPlayer Android SDK封装的Library库,以及一系列集成示例工程,分别适用于以下不同场景:

  • 手机直播观看及手机直播回看
  • 游戏直播观看
  • 在线视频点播观看
  • 短视频观看

Library库集成并封装了Ksy MediaPlayer iOS SDK,目的是方便开发者快速集成播放器。无需为播放相关的UI,直播与点播差异,以及各种事件和状态(Home键,电源键,弱网状态操作等)下播放器状态处理耗费太多精力。

不同场景的集成示例工程,对应的UI及状态处理逻辑均有差异,请开发者结合自身APP类型,合理的参考集成示例。鉴于APP业务逻辑可能与SDK默认处理逻辑略有差异,SDK提供了对应的状态修改API,如果不够灵活,开发者也可自行修改源码逻辑。

###结构 KSYMediaPlayer Demo 采用MVC模式,对播放器的核心SDK KSYMediaPlayer.framework进行了UI层次的封装。其核心播放类基本与iOS的MPMoviePlayerController接口保持一致,在其基础上扩充了一些功能。

##LIBRARY结构说明 ###app工程

  • Framework 文件夹:包含了核心SDK KSYMediaPlayer.framework;iOS系统播放类库:VideoToolbox.framework;以及一些系统依赖库:libz.tbd,libbz2.tbd,libstdc++.6.tbd。
  • VideoViewController 文件夹:包含了手机直播回看集成示例,游戏直播观看集成示例等集成,在后面会有详细介绍。
  • View 文件夹:包含了直播视图所需要的各种定制化模块化视图
  • Model 文件夹:包含了视图所需要的数据模型
  • Catergoary 文件夹:类别
  • Reachability 文件夹:判断网络状况的类库
  • Resources 文件夹:包含了图片等资源

###关键类说明

  • KSYBasePlayView 本工程中播放视图的基类,封装了KsyMediaPlayer API,也包含了播放器状态控制及部分特殊事件回调与处理.
  • KSYVideoOnDemandPlayVC 在线视频观看集成示例
  • KSYPopilarLivePlayVC 传统直播观看集成示例
  • KSYPopilarLivePlayBackVC 传统直播回看集成示例
  • KSYPhoneLivePlayVC 手机直播观看示例
  • KSYPhoneLivePlayBackVC 手机直播回看观看示例
  • KSYShortVideoPlayVC 短视频播放示例

##集成 导入SDK以及相关代码

  • 新建工程,引入KSYMediaPlayer.framework,VideoToolbox.framework,libz.tbd,libbz2.tbd,libstdc++.6.tbd这些类库。
  • 引入View,Model,Catergoary,Reahabitity文件夹
  • 每一个UI组件都是可分离的控件,开发者可根据自己的需求替换或者修改对应的控件

初始化

以手机直播为例

1.在Controller中引入KSYPhoneLivePlayView.h,CommentModel.h,SpectatorModel.h

import "KSYPhoneLivePlayView.h"
import "CommentModel.h"
import "SpectatorModel.h"

2.Controller中初始化KSYPhoneLivePlayView

    _phoneLivePlayVC = [[KSYPhoneLivePlayView alloc] initWithFrame:self.view.bounds urlString:self.videoUrlString playState:KSYPhoneLivePlay];
    //观看用户
    _phoneLivePlayVC.spectatorsArray = _spectatorsArr;
	[self.view addSubview:_phoneLivePlayVC];


3.设置KSYPhoneLivePlayView回调接口

    _phoneLivePlayVC.liveBroadcastCloseBlock = ^{
        
        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:nil message:@"确定退出观看?" delegate:weakSelf cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];
        [alertView show];
    };
    _phoneLivePlayVC.liveBroadcastReporteBlock = ^{
        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:nil message:@"请调用举报接口" delegate:weakSelf cancelButtonTitle:@"我知道了" otherButtonTitles:nil, nil];
        [alertView show];
    };
    _phoneLivePlayVC.shareBlock = ^{
        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:nil message:@"请调用分享接口" delegate:weakSelf cancelButtonTitle:@"我知道了" otherButtonTitles:nil, nil];
        [alertView show];
    };

4.销毁播放器

        [_phoneLivePlayVC shutDown];

对应其它同场景的详细集成示例,请参考Demo中的其他场景

##接口说明

###KSYBasePlayView接口说明

方法名:

初始化播放视图

-(instancetype)initWithFrame:(CGRect)frame urlString:(NSString *)urlString;

参数说明:

  • frame: 设置播放视图的frame
  • urlString:播放地址

方法名:

播放

-(void)play;

方法名:

暂停

-(void)pause;

方法名:

停止

-(void)stop;

方法名:

关闭播放器

-(void)shutDown;

方法名:

更新当前播放时间

-(void)updateCurrentTime;

方法名:

seek到某一时间点

-(void)moviePlayerSeekTo:(NSTimeInterval)position;

###KSYBasePlayView属性说明

中断事件是否释放播放器,返回重新创建,针对点播。直播默认是YES
isBackGroundReleasePlayer;


视频总时长
duration

视频播放的当前时间
currentPlaybackTime