文档章节

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

feng_blog
 feng_blog
发布于 2016/05/23 14:34
字数 738
阅读 1335
收藏 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

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

评论(1)

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

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

极光推送
2017/10/24
1
0
15+ 个有用的 iPhone 应用开发教程

从头开始构建一个购物清单应用程序 iPhone Development Tutorials from thenewboston Learn How To Develop For The iPhone How To Create Your First iPhone App (2012 Edition) 创建首个 ......

oschina
2013/01/04
3.3K
3
最简单的基于FFmpeg的移动端例子:IOS 视频转码器

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/leixiaohua1020/article/details/47072673 ===================================================== 最简单的...

雷霄骅
2015/08/01
0
0
【AR】在Unity中开始使用Vuforia(1)

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

lichong951
2018/06/11
0
0
基于深度学习的图像风格迁移移植到iOS端 / 文字识别框架Tesseract-OCR 预研这个具体要怎么做

1, 负责VR全景项目视频/图片播放器的全景漫游模块 2, 负责开发美颜/滤镜/大眼/瘦脸/动态贴图等图像处理功能 3, 基于深度学习的图像风格迁移移植到iOS端 / 文字识别框架Tesseract-OCR 预研...

知行合一1
2017/09/29
69
2

没有更多内容

加载失败,请刷新页面

加载更多

全面理解Java内存模型(JMM)及volatile关键字

理解Java内存区域与Java内存模型 Java内存区域 Java虚拟机在运行程序时会把其自动管理的内存划分为以上几个区域,每个区域都有的用途以及创建销毁的时机,其中蓝色部分代表的是所有线程共享的...

亭子happy
4分钟前
0
0
Prometheus监控mysql实例--centos7安装mysql_exporter

目录 概述 环境准备 普罗米修斯简介 mysql安装 mysqld_exporter安装 启动参数列表 概述 prometheus(普罗米修斯) 是一个开源系统监控和报警工具包,许多公司和组织都采用了Prometheus,该项目...

java_龙
10分钟前
3
0
拥有2000家门店,他如何晋升为服装界的新宠?

摘要: —— iwarm3.0加热组件、碳纳米管膜炎、管状石墨结构体...你看到并不是一款高科技电子产品,这是快鱼服饰在这个冬天推出的黑科技产品 - 智能温控羽绒服。 在竞争激烈的服装行业,快鱼...

阿里云云栖社区
12分钟前
0
0
不忘初心 砥砺前行-智和信通2018年年会报道

1月18日,智和信通以“不忘初心 砥砺前行”为主题的2018总结会议暨2019年年会在京召开。年会以总经理李少龙的讲话为开场,充分肯定了全体员工2018年的工作和成绩,并表达了公司产品智和网管平...

智和网管平台
21分钟前
0
0
NGINX api网关

以谁为师
22分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部