iOS SDK使用指南
产品概述
iOS SDK包含全景图片、VR视频、漫游主题等多种展示方式,支持小行星模式、陀螺仪、VR双屏沉浸式观看。您只需一个链接地址或是一条配置即可展现炫酷的全景效果。
为了更好的体验效果,建议ios8及以上的系统搭建。
下载并集成SDK
(注意:仅支持真机调试)
[demo&sdk包 2.3.8版本下载] (http://media.qicdn.detu.com/sdk2/ios_sdk2.3.8&demo.zip "sdk包 下载")
【2.3.8版本更新内容】(2018-01-02) 1.修改热点逻辑 2.fix:播放结束,进度回调还在继续的问题 3.解决漫游切换内存暴涨的问题 4.修改 播放2500 宽的 视频 绿屏解决方案 无需改变原始的 宽度
配置说明
下载sdk包之后,将sdk包复制项目目录下
做以下配置
在Linked Frameworks and Libraries 添加相关tbd和FrameWork系统类库
添加相关路径
将IJKMediaFramework.framework 和opencv2 所在路径添加到 Framework search Paths
将header文件夹所在路径和IJKMediaFramework.framework的headers文件夹路径添加到Header Search Paths
将libios_player_lib.a 和 libSDWebImage文件夹所在路径添加到Library Search Paths
播放器的引入
在控制器添加播放器
播放器PanoPlayer继承自UIView 播放器协议:PanoPlayDelegate
PanoPlayer *panoPlayer = [[PanoPlayer alloc] init];
self.panoPlayer = panoPlayer;
[self.view addSubview:panoPlayer];
panoPlayer.frame = self.view.frame;
self.panoPlayer.delegate = self;
播放本地视频和图片
需要创建 PanoPlayerUrl类
PanoPlayerUrl *panoplayerurl = [[PanoPlayerUrl alloc] init]
创建xml
NSString *tempURl = @"<?xml version=\"1.0\" encoding=\"UTF-8\" ?> \
<DetuVr> \
<settings init=\"pano1\" initmode=\"default\" enablevr=\"false\" title=\"\"></settings> \
\
\
<scenes> \
<scene name=\"pano1\" title=\"%title\" thumburl=\"%thumburl\"> \
<preview url=\"\" /> \
<image type=\"%type\" url=\"%url\" \
\
\
device=\"0\" \
\
/> <view hlookat='0' vlookat='90' fov='110' viewmode='default' /> \
</scene> \
</scenes> \
</DetuVr>";
替换XML相关配置
配置 | 类型 | 参数 |
---|---|---|
fileType | 图片 | @"sphere" |
fileType | 视频 | @"video" |
NSString *fileType = @"sphere";
//替换文件类型
tempUrl = [tempUrl stringByReplacingOccurrencesOfString:@"%type" withString:fileType];
//替换文件地址 (若是本地文件, 完整路径必须带 file://)路径不能带中文
tempUrl = [tempUrl stringByReplacingOccurrencesOfString:@"%ul" withString:url];
//加载xml 播放资源
[panoplayerurl SetXmlContent:tempUrl];
[self.panoPlayer Play:panoplayerurl];
播放网络图片
实例一个panoPlayerUrl,然后传入图片地址
PanoPlayerUrl *panoPlayerUrl = [[PanoPlayerUrl alloc] init];
//示例图片
NSString *app_config_pic = @"http://www.detu.com/ajax/pano/xml/61505";
[panoPlayerUrl SetXMlUrl:app_config_pic];
[self.panoPlayer Play:panoPlayerUrl];
播放网络视频
实例一个panoPlayerUrl,然后传入视频地址
PanoPlayerUrl *panoPlayerUrl = [[PanoPlayerUrl alloc] init];
//示例视频
NSString *app_config_mov = @"http://www.detu.com/ajax/pano/xml/68356";
[panoPlayerUrl SetXMlUrl:app_config_pic];
[self.panoPlayer Play:panoPlayerUrl];
播放器代理方法
代理方法 | 方法说明 |
---|---|
-(void)PanoPlayOnLoading | 加载中 |
-(void)PanoPlayOnLoaded | 加载结束 |
-(void)PanoPlayOnEnter:(PanoramaData*)curpanodata | 进入场景 |
-(void)PanoPlayonLeave:(PanoramaData*)prepanodata | 离开场景 |
-(void)PluginVideoOnStatusChanged:(PanoVideoPluginStatus)s | video Plugin的回调 |
-(void)PluginVideoOnProgessChanged | 视频进度的改变 |
-(void)PluginVideoOnSeekFinished | 播放结束 |
-(void)PluginVideoOnPlayerError:(NSError *)e | 视频播放异常 |
视频进度条相关
get插件 :self.videoplugin = [self.panoPlayer GetCurrentPluginObject];
当前时间 :self.videoplugin.currentTime
视频总长 :self.videoplugin.duration
开始播放 :[self.videoplugin start];
暂停播放 :[self.videoplugin pause];
正在播放:STATUS_PLAYING
暂停:STATUS_PAUSE
停止:STATUS_STOP
结束:STATUS_FINISH
空状态:STATUS_BUFFER_EMPTY
播放器视角相关模式设置
播放器的陀螺仪开启 /关闭
self.panoPlayer.gyroEnable = YES; //NO
播放器的VR模式开启
`[self.panoPlayer setViewMode:VIEWMODE_VR];`
模式说明
模式 | 说明 |
---|---|
VIEWMODE_SPHERE | 鱼眼模式 |
VIEWMODE_DEF | 全景模式 |
VIEWMODE_LITTLEPLANET | 小行星模式 |
ViewMode.VIEWMODE_FLAT | 平面模式 |
ViewMode.VIEWMODE_VR | VR 模式 |
设置完相关角度之后 给播放器set viewMode
[self.panoPlayer setViewMode:mode];
注意事项
播放结束退出控制器的时候 一定要销毁播放器
[self.panoPlayer cleargc];
如果播放的是视频,需要停止视频
[self.videoplugin pause];
视角调整
配置中有view标签可以设置视角
<view hlookat='0' vlookat='90' fov='110' vrfov='95' fovmin = '75' fovmax='130' defovmax='120' viewmode='default' />
hlookat:水平方向的角度
vlookat:竖直方向的角度
fov:摄像机视角
vrfov:vr模式下的摄像机视角
fovmin:最小视角
fovmax:最大视角
defovmax:全景模式下的最大视角