CocoaPods trunk is moving to be read-only. Read more on the blog, there are 7 months to go.

RYPlayer 1.1.0

RYPlayer 1.1.0

Maintained by wangcy.



RYPlayer 1.1.0

  • By
  • wangcy

大洋融云IOS播放器 -- RYPlayerSDK

基于ijkplayer开发,集点播、直播、VR播放功能于一体,可支持播放数据统计。

集成方式:

1.使用cocoapods
请将下面代码加入到您的 Podfile 中:
pod 'RYPlayer'

2.手动集成
下载RYPlayerSDK、IJKMediaFramework.framework;
将RYPlayerSDK.framework和IJKMediaFramework.framework复制到项目中;

  • 添加依赖库:
    在Build Phases中的Link Bainary With Libraries中添加:
    RYPlayerSDK.framework、
    IJKMediaFramework.framework、
    Libiconv.tbd、
    libsqlite3.tbd、
    libz.tbd、
    libz2.tbd、
    libc++.tbd、
    libxml2.tbd、
    libresolve.9.tbd

  • 在Embed Frameworks中添加RYPlayerSDK.framework

  • 在Build Settings中找到Other Linker Flags ,添加 -ObjC

  • 如需支持后台播放,需要打开Background Modes并勾选Audio,airplay,andPciture in Picture

  • 播放器使用大观云平台统计播放数据,需要在plist中添加App Transport Security Settings,并设置Allow Arbitrary Loads为YES

播放器的使用:

引用RYPlayerSDK
#import <RYPlayerSDK/RYPlayerSDK.h>

@implementation ViewController
-(void)viewDidLoad 
{
[super viewDidLoad];
//添加播放器视图
[self.view addSubview:self.containerView];
    //播放器管理器
NSObject<RYPlayerMediaPlayback> *playerManager;
//选择播放器类型
	int type;
    if(self.type == 0)
	{
	//直播
	playerManager = [[RYIJKPlayerManager alloc] init];
	//软解/硬解码
	//[playerManager setGPUCodeMode:NO];
	}else if (self.type == 1)
	{
	//点播
	playerManager = [[RYAVPlayerManager alloc]init];
	}else if(self.type == 2)
	{
	//全景VR直播
	playerManager = [[RYVRPlayerManager alloc]initWithDecoderType:2];
	}else if (self.type == 3)
	{
	//全景VR点播
	playerManager = [[RYVRPlayerManager alloc]init];
	}
 // 播放器初始化
self.player = [RYPlayerController playerWithPlayerManager:playerManager containerView:self.containerView];
//设置不同分辨率播放地址
self.player.assetURLs = self.assetURLs;
 //开始播放
[self.player playTheIndex:0]; 
 }
	@end

定制化开发接口说明

1.使用播放器自带UI(如需自定义开发UI,不调用此接口)
self.controlView = [RYPlayerControlView new];
self.player.controlView = self.controlView;
//设置不同分辨率显示名称
[self.controlView setDefaultUIWithURLNames:URLNamesArr];

2.设置画面填充模式(VR播放器暂不支持)
playerManager.scalingMode = RYPlayerScalingModeAspectFit;

3.倍速播放(0.5~2倍)
playerManager.rate = 1;

4.播放器自动播放
playerManager.shouldAutoPlay = YES;

5.支持后台播放
(需要打开Background Modes并勾选Audio,airplay,andPciture in Picture)
self.player.pauseWhenAppResignActive = YES;

6.暂停播放
[self.player.currentPlayerManager pause];

7.恢复播放
[self.player.currentPlayerManager play];

8.切换不同分辨率
[self.player playTheIndex:x];

9.切换不同视频
Self.player.assetURLs = URLSArr;

10.播放器静音
[self.player.currentPlayerManager setMuted:YES];

11.截图(VR暂不支持截图功能)
[self.player.currentPlayerManager thumbnailImageAtCurrentTime];

12.销毁播放器
[self.player stop];

13.播放器索引时间点
[self.player seekToTime:time completionHandler:^(BOOL finished) { }];

播放器回调接口

1.播放器准备播放
self.player.playerPrepareToPlay = ^(id _Nonnull asset, NSURL * _Nonnull assetURL) { };

2.播放器准备好播放
self.player.playerReadyToPlay = ^(id _Nonnull asset, NSURL * _Nonnull assetURL) { };

3.播放器播放播放时间回调
self.player.playerPlayTimeChanged = ^(id _Nonnull asset, NSTimeInterval currentTime, NSTimeInterval duration){ };

4.播放器缓冲时间回调
self.playe.playerBufferTimeChanged = ^(id _Nonnull asset, NSTimeInterval bufferTime) { };

5.播放器播放状态回调
self.player.playerPlayStateChanged = = ^(id _Nonnull asset, RYPlayerPlaybackState playState) { };

6.播放器加载状态回调
self.player.playerLoadStateChanged = = ^(id _Nonnull asset, RYPlayerLoadState loadState) { };

7.播放器播放失败回调
self.player.playerPlayFailed = ^(id _Nonnull asset, id _Nonnull error) { };

8.播放器播放完毕回调
self.player.playerDidToEnd = ^(id _Nonnull asset) { };