圆周率全景相机AndroidSDK使用指南.docx
- 文档编号:16550562
- 上传时间:2023-07-14
- 格式:DOCX
- 页数:19
- 大小:566.25KB
圆周率全景相机AndroidSDK使用指南.docx
《圆周率全景相机AndroidSDK使用指南.docx》由会员分享,可在线阅读,更多相关《圆周率全景相机AndroidSDK使用指南.docx(19页珍藏版)》请在冰点文库上搜索。
圆周率全景相机AndroidSDK使用指南
Pisofttech
圆周率全景相机AndroidSDK使用指南
版本:
V1.1.2.Basic
Pisofttech
本文主要指导用户如何将本公司的AndroidSDK集成到自己的Android项目中,及提供API说明
一、名词解释
展开:
按照特定的3D模型对输入图像进行展示,而这些特定的3D模型称为【展开模式】。
转场动画:
从一个展开模式切换到另一个展开模式时的动态过度效果。
输入源:
根据输入图像内容进行的分类。
预览:
实时显示输入的图像数据。
镜头朝向:
专指单鱼眼镜头的摆放位置。
二、功能介绍
1.功能列表
功能
描述
实时预览
以多种全景展开模式,观看全景相机拍摄的实时图像
浏览图片
以多种全景展开模式,查看本地保存的全景照片
播放全景视频
以多种全景展开模式,播放本SDK录制的全景视频文件
2.使用限制
软件要求:
只支持android5.0及以上armeabi-v7a版本的android应用开发。
硬件要求:
要求CPU四核2.7GHz,运行时内存2GB同等及以上性能的手机。
三、Androidstudio如何导入SDK
1.SDK文件结构
pi_camera_解压后会得到libs、assets、jniLibs、demo、doc三个文件夹,如下图:
其中:
libs、assets及jniLibs文件夹包含的是android工程集成SDK的必须文件;
demo包含的是androidstudio调用SDK的实例工程;
doc包含的是SDK的帮助文档。
2.导入必要文件
1)将libs目录下的所有文件复制到androidstudio工程的libs目录中,如下图:
图中文件仅供参考,实际文件会根据使用前版本有所差异。
2)将assets文件夹复制到androidstudio工程的src/main目录中,如下图:
3)将jniLibs目录下的文件夹复制到androidstudio工程的src/main/jniLibs目录(如果没有jiniLibs目录,则新建一个)中,如下图:
图中文件仅供参考,实际文件会根据使用前版本有所差异。
3.工程配置
用户须要根据实际需求,配置相应的权限。
以demo中的实例工程为例,拍照、录像须要SD卡的读写及音频采集权限,如下图:
在需要嵌入预览或播放器的layout文中加入一个播放器的父控件,如LinearLayout,参考下图:
在Activity的onCreate()中加入
LinearLayoutlayout=(LinearLayout)findViewById(R.id.videoview);
ew(panoPlayerView);
layout变量对应上面layout中添加的控件,panoPlayerView变量由SDK的API中获得,详见下文。
重载Activity中以下函数:
@OverrideprotectedvoidonDestroy()
{
troy();
troy();
}
//PauseUnity
@OverrideprotectedvoidonPause()
{
se();
se();
}
//ResumeUnity
@OverrideprotectedvoidonResume()
{
ume();
ume();
}
//Thisensuresthelayoutwillbecorrect.
@OverridepublicvoidonConfigurationChanged(ConfigurationnewConfig)
{
figurationChanged(newConfig);
figurationChanged(newConfig);
}
//NotifyUnityofthefocuschange.
@OverridepublicvoidonWindowFocusChanged(booleanhasFocus)
{
dowFocusChanged(hasFocus);
dowFocusChanged(hasFocus);
}
mPiPanoSDK变量由SDK的API中获得,详见下文。
四、SDK初始化
1)先在要调用SDK的java文件中加入
import.reListener;
import.de;
import.oSDK;
2)在Activity的onCreate()中加入创建SDK对象
mLayout=(LinearLayout)findViewById(R.id.videoview);
try
{
mPiPanoSDK=newPiPanoSDK(this,this);
}catch(Exceptione)
{
e.printStackTrace();
}
3)获取SDK图像渲染窗口
ViewpanoPlayerView=ayerView();
if(null==panoPlayerView)
{
Log.e(TAG,"null==panoPlayerView");
return;
}
4)实现接口IsReadyListener中的onSDKIsReady(),监听SDK初始化完成
publicvoidonSDKIsReady()
{
mSDKIsOK=true;
Log.d(TAG,"SDKisok");
}
5)如果输入源为单鱼眼,则需要根据相机实际的摆放情况,调用setCamDirection()设置相机的方向
注意:
如果是使用Fragment加载SDK,则Fragment需要定义接口给加载自身的Activity在onWindowFocusChanged()响应时,将消息传递给Fragment,实例代码如下:
Fragment中代码:
@Override
publicvoidonWindowFocusChanged(booleanhasFocus)
{
dowFocusChanged(hasFocus);
}
加载Fragment的Activity中代码:
@Override
publicvoidonWindowFocusChanged(booleanhasFocus)
{
dowFocusChanged(hasFocus);
if(mCurrentFragmentinstanceofIOnFocusListenable)
{
((IOnFocusListenable)mCurrentFragment).onWindowFocusChanged(hasFocus);
}
}
五、基本功能
1.如何开始预览
1)使用setPreviewIsReadyListener()设置监听预览是否准备就绪;
2)实现OnPreviewIsReadyListener()方法,处理预览就绪后的业务;
3)调用setPreviewTextureSize()设置SDK预览的texturesize;
4)调用startPreview()开始预览;
5)调用setViewMode()设置展开模式;
6)OnPreviewIsReadyListener()响应后,调用getPreviewSurfaceTexture()获取SDK的SurfaceTexture,然后将图像渲染到此SurfaceTexture,即可预览到图像;
7)在预览过程中可调用setViewMode()切换展开模式,详见API说明;
8)调用stopPreview()停止预览。
2.如何查看本地照片
1)调用openPhoto()打开指定的本地照片,并显示在之前关联的控件中。
2)在照片浏览时,可以调用setViewMode()切换展开模式。
3.如何播放视频
1)播放录像
A.调用openVideo()打开视频文件,可以是本地文件也可以是网络url。
B.在播放过程中,可以调用setViewMode()切换展开模式。
C.调用pause()暂停播放。
D.调用resume()继续播放。
E.调用getVideoProgress()获取当前播放进度百分比(1.0表示100%)。
F.调用seek()快进到指定的进度百分比开始播放。
G.调用stop()停止视频播放。
六、API说明
初始化
PiPanoSDK(Activityactvty,OnSDKIsReadyListenerlistener)
PiPanoSDK的构造函数
Parameters
actvty使用SDK的actvty
listener监听SDK初始化完成的回调
Returns
无
ViewgetPlayerView()
获取SDK用于图像渲染的view,以便部署到android工程的UI中
Returns
返回null表示失败
实时预览
voidsetPreviewIsReadyListener(OnPreviewIsReadyListenerlistener)
给SDK绑定OnPreviewIsReadyListener,以便监听预览是否准备就绪
Parameters
listener
Returns
无
intstartPreview(StringinputSrcType)
开始显示预览图像
Parameters
inputSrcType输入源类型
取值范围:
输入源类型
值
单鱼眼
OneEye
全景2:
1
Full21
Returns
返回0表示成功就,返回负值表示失败
intstopPreview()
停止显示预览图像
Returns
返回0表示成功就,返回负值表示失败
voidsetPreviewTextureSize(intwidth,intheight)
设置预览Texture的size
Returns
无
SurfaceTexturegetPreviewSurfaceTexture()
获取用于渲染预览图像的SurfaceTexture,用户可以对此SurfaceTexture进行操作
Returns
用于渲染预览图像的SurfaceTexture
视频文件播放
intopenVideo(Stringurl,StringinputSrcType)
打开并播放视频文件(支持本地和网络)
Parameters
url本地视频文件路径或者网络链接
inputSrcType输入源类型
取值范围:
输入源类型
值
单鱼眼
OneEye
全景2:
1
Full21
Returns
返回0表示成功就,返回负值表示失败
voidpause()
暂停播放
Returns
无
voidResume()
继续播放
Returns
无
voidstop()
停止播放
Returns
无
doublegetVideoProgress()
获取视频当前播放进度的百分比
Returns
视频当前播放进度的百分比(范围:
0.0~1.0)
voidseek(doubleoffset)
进度跳转
Parameters
offset表示跳转到视频时长的百分之几的位置(范围:
0.0~1.0)
Returns
无
查看本地照片
intopenPhoto(Stringpath,StringinputSrcType)
打开并显示照片
Parameters
path本地视频文件路径或者网络链接
inputSrcType输入源类型
取值范围:
输入源类型
值
单鱼眼
OneEye
全景2:
1
Full21
Returns
返回0表示成功就,返回负值表示失败
显示效果
intsetViewMode(StringshowMode)
设置展开模式,不同的输入源对应的可用模式不同
Parameters
showMode对应各种全景展开模式的标识值
取值范围:
展开模式
值
支持的输入源
黑屏
EPM_NONE
OneEye
Full21
沉浸
EPM_SPHEREIN
OneEye
Full21
鱼眼
EPM_SPHEREOUT
OneEye
Full21
小行星
EPM_SPHEREASTEROID
Full21
VR
EPM_VR
OneEye
Full21
Returns
无
voidsetImageFlipHorizontal(booleanflag)
将显示的图像进行左右翻转,对“预览”、“打开照片”、“播放文件”均生效
Parameters
flagtrue为翻转,false为不翻转
Returns
无
voidsetInputImageContentSize(intcanvasWidth,intcanvasHeight,intcontentWidth,intcontentHeight)
设置输入图像的画布分辨率及显示在画布上的图像内容分辨率(单鱼眼专用)
Parameters
canvasWidth画布宽
canvasHeight画布高
contentWidth图像宽
contentHeight图像高
Returns
无
其他
StringgetVersion()
获取当前SDK版本号
Returns
当前SDK版本号
voidsetScreenOrientation(intmode)
设置屏幕翻转
Parameters
mode翻转的模式
取值范围:
屏幕朝向
值
竖屏
1
倒向竖屏
2
左向横屏
3
右向横屏
4
根据设备感应器确定方向
5
Returns
无
StringgetCurrentInputSrcType()
获取当前输入源类型
Returns
当前是输入源类型
voidsetCamDirection(inttype)
设置镜头朝向(单鱼眼专用)
Parameters
mode翻转的模式
取值范围:
镜头朝向
值
镜头朝上
0
镜头朝下
1
镜头朝前
2
Returns
无
类PiSourceModeType
说明:
该类定义了图像输入源的类型标识
包.n
方法概要
ArrayList
获取当前可用的输入源类型表单
Returns
返回可用类型表单,及类型的附加信息(值、中文名、英文名)
类PiViewModeType
说明:
该类定义了展开模式的类型标识
包.n
方法概要
ArrayList
获取当前可用的展开模式类型表单,会根据不同的图像输入源类型来提供对应的表单
Parameters
inputSrcType输入源的类型标识
Returns
返回可用类型表单,及类型的附加信息(值、中文名、英文名)
类PiTransitionEffectType
说明:
该类定义了转场动画的类型标识
包.n
方法概要
ArrayList
获取当前可用的转场动画类型表单
Returns
返回可用类型表单,及类型的附加信息(值、中文名、英文名)
类PiCameraDirectionType
说明:
该类定义了单鱼眼镜头朝向的类型标识
包.n
七、常见问题
预览、浏览照片或播放视频文件时,看到的图像是左右相反的
答:
请调用setImageFlipHorizontal()对图像进行左右镜像翻转。
一个SDK实例可以和多个fragment的Layout绑定吗?
答:
不支持。
单鱼眼的输入源,在【沉浸】图像显示不正常怎么办?
答:
单鱼眼的图像默认是按照“镜头朝上拍摄”进行处理的,如果图像是其它方向进行拍摄的,须调用setCamDirection()设置成实际镜头朝向。
单鱼眼的输入图像画布四边不是和鱼眼图像相切的,怎么才能正常展开?
答:
通过调用setInputImageContentSize()设置画布大小(即图像分辨率),及鱼眼的实际大小(即鱼眼部分的分辨率),即可。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 圆周率 全景 相机 AndroidSDK 使用指南