文档章节

iOS使用得图SDK开发VR播放器

feng_blog
 feng_blog
发布于 2016/05/23 14:34
字数 738
阅读 1.7K
收藏 4

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

产品概述

iOS SDK包含全景图片、VR视频、漫游主题等多种展示方式,支持小行星模式、陀螺仪、VR双屏沉浸式观看。您只需一个链接地址或是一条配置即可展现炫酷的全景效果。

下载并集成SDK (注意:仅支持真机调试)

sdk包下载

demo下载

下载sdk包之后,将sdk包复制项目目录下

做以下配置

在Linked Frameworks and Libraries 添加三个库

libz2.tbd

libxml2.tbd

libc++.tbd 

添加相关路径

将IJKMediaFramework.framework 和opencv2 所在路径添加到 Framework search Paths

将include文件夹所在路径添加到Header Search Paths

将libPanoPlayerStatic.a 和 thirdPart文件夹所在路径添加到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_PLANE

平面模式

ViewMode.VIEWMODE_VR

VR 模式

设置完相关角度之后 给播放器set viewMode

 [self.panoPlayer setViewMode:mode];

注意事项

播放结束退出控制器的时候 一定要销毁播放器

    [self.panoPlayer cleargc];

 

更多内容与学习交流请关注个人微信公众帐号:极客峰

© 著作权归作者所有

feng_blog

feng_blog

粉丝 123
博文 130
码字总数 105422
作品 3
朝阳
iOS工程师
私信 提问
加载中

评论(1)

丁丁程序员
我下载楼主的Demo, 功能很强大,很不错。 我遇到一个问题,播放 本地VR视频时候,摄像视角太近了,用别VR播放器看着距离刚好。。。 求楼主指教
极光开发者沙龙 JIGUANG MEETUP——iOS 技术综合实践

活动背景 相信各位 iOSer 已经在 WWDC 结束后亲身体验过相关的技术。今年 WWDC 后,开发者们要适配的工作并不像以前那么繁重,在各大论坛中也可以搜到相关的技术实战分享。但因为每个公司的技...

极光推送
2017/10/24
42
0
极光开发者沙龙 JIGUANG MEETUP——iOS 技术综合实践

活动背景 相信各位 iOSer 已经在 WWDC 结束后亲身体验过相关的技术。今年 WWDC 后,开发者们要适配的工作并不像以前那么繁重,在各大论坛中也可以搜到相关的技术实战分享。但因为每个公司的技...

极光开发者服务
2017/10/24
58
0
iOS AVKit音视频播放全面详解

公司项目中经常要用到音视频处理,也需要去定制一些东西,然后整理这些音视频处理就显得尤为重要!方便自己和广大朋友学习收藏! 以下参考连接特别重要: 苹果官方:AVKit API 苹果官方:AVF...

肖品
2016/10/27
0
0
【AR】在Unity中开始使用Vuforia(1)

原 目录 在Unity中开始使用Vuforia Vuforia在统一 关于Vuforia 安装Vuforia 创建一个新的Unity项目 Vuforia游戏对象 在您的项目中激活Vuforia 访问Unity中的Vuforia功能 将目标添加到您的场景...

lichong951
2018/06/11
0
0
跨平台媒体播放器框架 - SGPlayer

SGPlayer SGPlayer 是一款基于 AVPlayer、FFmpeg 的媒体资源播放器框架。支持360°全景视频,VR视频,RTMP、RTSP 等直播流;同时支持 iOS、macOS、tvOS 三个平台。 功能特点 支持播放360°全...

libobjc
2017/04/21
2.8K
1

没有更多内容

加载失败,请刷新页面

加载更多

如何在Windows上安装pip? - How to install pip on Windows?

问题: pip is a replacement for easy_install . pip替代了easy_install 。 But should I install pip using easy_install on Windows? 但是我应该在Windows上使用easy_install安装pip吗? ......

fyin1314
55分钟前
21
0
gitlit二级目录访问

由于我们只有一个域名暴露,特殊需求,所以需要二级目录访问 配置文件在 defaults.properties 第1985行 contextPath 改掉就好了 # Context path for the GO application. You might want to...

shzwork
今天
24
0
OSChina 周一乱弹 —— 我电脑传染了新冠脚气

@性感码农 :不结婚,被老爸说,回村里别人都瞧不起你,及即使你赚了很多钱,不结婚,永远没有人瞧得起你。挺纳闷的,要别人瞧得起我干嘛 又不回村里, 跟他们生活也没什么交集啊, 用得着他...

小小编辑
今天
18
0
类加载的过程

加载->链接->初始化; 其中链接又分为:验证->准备->解析。

曦鱼violet
今天
21
0
Linux下几个与磁盘空间和文件尺寸相关的命令

硬盘是计算机非常重要的一个部件,不管是代码,还是 UI 、声音、文档,抑或是没人时偷偷看的小视频,都需要保存在硬盘里。 对于很多 Linux 服务器,会进行很多的编译操作。而编译操作在很多情...

Linux就该这么学
今天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部