ue4暴风sdk输出游戏ue4打包失败出错

你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
UE4 Effects 废弃的山洞
游戏简介:
这是一个废弃的山洞,在暴风雨来临之际,你别无选择,只能躲进这个诡异的山洞!这是虚幻四引擎制作的演示,需要运行在64位系统下!如果在使用时,画面中始终出现健康提示...
用户评测:暂时无评价
游戏分类:
这是一个废弃的山洞,在暴风雨来临之际,你别无选择,只能躲进这个诡异的山洞!这是虚幻四引擎制作的演示,需要运行在64位系统下!如果在使用时,画面中始终出现健康提示,可以摇晃你的脑袋,让这个提示消失,如果晃脑袋不能解决问题,那就按“~”键呼叫出控制台,并输入hmd htw即可关闭!
要回复文章请先或
星级推荐:
用户评测:暂时无评价
平台系统:Windows
发布日期:日
游戏标签:posts - 13,&
comments - 0,&
trackbacks - 0
学习一个新技术,有三个法宝:
法宝1: 掌握厂家提供的用户API手册
法宝2: 掌握厂家提供的demo样例
法宝3:《》
故,学习魔镜4技术,亦如是也。
暴风魔镜4是 硬件 + 暴风VR SDK软件的CardBoard VR解决方案。
魔镜4硬件提供了展示容器工具,主要由2个凸透镜和塑料头盔构成。故为了看到效果酷炫的VR效果,必须要依赖5寸以上Android手机&720P以上,把通过暴风魔镜SDK做的App放入里面,通过暴风魔镜凸透镜才能看到VR的效果&这种Cardboard方式VR,是基于2年前Google CardBoard&启发&的。
网上也有说几十元,可以自己组装Google CardBoard的,不过对于DIY硬件,我没有太大动力,100多元钱,买个现成的暴风魔镜 4,非常好了。
暴风SDK软件
SDK软件,才是Unity3D程序员重点关注的。
这张图,是魔镜提供的360度图片的Unity3D层次截图,这里我们可以看出部分SDK软件框架:
UI:& 这里主要采用UGUI,做了一个Button,返回主界面。 在VR中,UGUI 的3D UI效果就立显了,还有就是UGUI是Unity原生的,效果又不错,故做UI选择UGUI是大趋势。
MojingMain、MojingVRHead:负责陀螺仪数据接收,水平坐标x和垂直坐标y数据。
MojingInputManager:负责手机蓝牙的输入控制,直接拿来复用即可,魔镜出厂适配了魔镜蓝牙和小米蓝牙控制器,一般而言,目前蓝牙手柄是比较常见的外设输入,可能随着Oculus Touch面世会升华。
GazePointer\Pose3D:眼睛目视前方的小黄点。这个是VR应用中一个很酷的实践,当你没有蓝牙控制器,可通过这个轨迹点,实现功能选择。通过代码中,看到很多流利的英文注释,我搜索了一下github,原来当年google CardBoard代码,一模一样嘛,呵呵。
MojingEye: 一个VR应用,要用到2个Camera,分别是Left、Right,类似人的左右眼。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
VR的常见Q&A
1 PC和APP的应用能否复用?
答复:不能复用。app应用是手机上的,PC用的*.exe的,不能复用。 如果是3D片源则可以。
2 近视镜问题?
答复:暴风魔镜4,提供的空间挺大的,我600度近视,带着眼镜,没有问题。且说,Oculus Rift提供了3组镜片,对于&=400度近视的,完全没有问题的。
3 伤眼睛问题?
答复:这个是我最担心的,不过试了几天,发现貌似不伤眼睛,网上查了一下&
让人眼感受到具有深度信息的持续的3D渲染是虚拟现实最重要的部分。
第一,为了产生深度信息,它给每个眼睛生成一张图片,这两张图片在视觉上有一点点偏移量,这样就可以模拟人眼的视差,所谓视差就是人脑处理在不同位置看到的物体而产生的深度信息。第二,产生更好的视觉效果,它将图片扭曲从而模拟人眼的球形表面,通过桶形畸变技术可以达到这个效果。
==& 在使用暴风魔镜4的时候,你的眼睛其实在任何时候都在观看远景。
4 市场成熟度问题?
答复:目前技术限制,依然是成熟前期,如果技术突破了:2k+屏幕、60FPS+、&20ms这3个要素,且VR价格大幅度降低,则是VR内容突飞猛进的市场阶段&或许2016Q3后会有不错的市场。
5 用什么来开发VR产品?
答复:主要是Unity3D,UE4,而其中Unity3D占据了70%以上,据说。 VR为了牛X在PC VR,但是初期暴风魔镜100多元的价格,做手机版App,正是Unity3D的长项也。
6 图像抗镜片畸变?
答复:畸变的英文单词distortion, 物体上的直线经过透镜成像后变成弯曲的现象。畸变是由于透镜的放大率随光束和主轴间所成角度改变而引起。 详细看百科:.
我在网上查了一些,新出的一本《Learning Virtual Reality》书,PDF电子版链接:
搞了好久,终于弄明白,暴风魔镜和暴风影音是一伙的,非常好,尤其是大厂能与时俱进的,佩服!
再次复习一下Unity3D的3D数学,我理解的,这个在VR技术,应用会很多:
转载请注明转自《》
阅读(...) 评论()SDK文档>直播>iOS SDK
一、服务介绍
当用户将直播流推送到暴风云平台后,可以利用iOS SDK在移动端观看直播视频。此外,我们还提供iOS平台的流服务,用户可以在该SDK的基础上构建自己的播放器,同时享用暴风云平台视频P2P功能,节省带宽。
对于iOS平台下的直播用户,我们提供以下SDK:
a) 播放器库文件:BFCloudPlayer.a;
b) 播放器资源文件:resource.bundle;
c) 接口文件:BfCloudPlayer.h;
d) demo文件:ViewController.mm。
mediacenter
a) 流服务库文件:libBusinessLayer.a;
b) 头文件:media_center.h;
c) demo文件:MediaCenterDemo.mm。
二、SDK使用方法
直播提供两种级别的播放:一是用户在自行开发的APP中嵌入暴风云播放器,只需提供一个URL即可播放视频,无需自行开发播放器;二是用户自行编写播放器,使用视频流服务SDK来为用户自定义播放器提供数据流。
三、暴风云播放器SDK(BFCloudPlayer)
1、技术简介
通信协议:播放器与数据层通信使用http协议。数据层与暴风云平台服务器通信使用暴风私有协议。
逻辑简介: 暴风云播放器是iOS原生播放器MPMoviePlayerController 与暴风云视频服务结合而成的云视频播放器。提供简洁完善的接口,可以满足用户的界面布局和播放需求。播放器拥有自适应全/半屏切换,触摸调节声音、快进快退等效果;播放过程中可以切换片源,切换分辨率。在不卸载播放器的情况下,SDK会记住用户上次选择的分辨率作为默认分辨率播放下一个视频。
typedef enum
StyleEmbedded,
//非全屏风格的控制按钮
StyleFullscreen,//全屏风格的控制按钮
StyleNone,
//未指定风格
} displayS
开放属性名
(readonly)播放器根View
displayStyle
设定当前播放器控制条的风格。
全屏风格:有退出全屏按钮,支持滑动手势:上下滑动屏幕控制音量,左右快速滑动控制快进快退。
非全屏风格:有进入全屏按钮,不支持滑动手势。
autoRotate
设置是否需要自动适应屏幕旋转:
横屏播放器转为全屏,竖屏转为非全屏
创建并初始化播放器
initWithtFrame
Description
创建并初始化播放器。创建后即可展示,barStyle为StyleEmbed。
Return&Value
返回云视频播放器
为播放器根view设定frame
shouldAutoRotate
是否支持自动全/半屏
playWithURL
Description
Return&Value
返回云视频播放器
视频URL&参见API文档
NSString&*
用户token&参见API文档
shouldAutoPlay
是否自动播放
资源不存在
网络连接超时
11000、 11001、 20004、 20005、 20010、 20100、 20101、 2、 20107 、 20201 、 20202
播放器异常
1、 10000、 10001、 10002、 10004、 10005、 10006、 11002、 1、 20001、 20003、 20007、 20015
20002、 20008 、 20014
程序加载错误&
四、视频流服务(libmediacenter.a)
1、技术简介
通信协议:视频播放SDK由c++实现视频播放底层逻辑,向上提供C风格的接口。SDK与暴风云平台服务器通信使用暴风私有协议。用户向SDK请求数据使用标准http协议,SDK作为本地http server提供服务。
逻辑简介:SDK逻辑层采用二级管理:媒体句柄(MediaHandle) + 流服务(StreamService)。一个媒体句柄负责一个影片的整个播放生命周期,相应播放器的播放、暂停、停止、重播、拖动、切换分辨率等动作。每切换一次分辨率则需要启动一个新的流服务。目前只允许同时存在一个影片的一条流服务:即启动下一条服务前必须关闭上一条服务;创建下一个影片的媒体句柄前要销毁上一个句柄。
在不卸载库的情况下,SDK会记住用户上次选择的分辨率作为默认流通知上层。
2、业务流程
1)初始化库:SDK加载底层库;
2)创建媒体句柄:注册状态回调函数,得到媒体句柄(MediaHandle);
3)等待句柄状态事件:当媒体句柄状态变为Runnable时,即为可播放状态;
4)请求媒体信息和流信息:获取可开启的流服务信息(MeidaInfo)。
5)创建流服务:根据流信息选择某个分辨率创建流服务(MeidaStream);
6)同片切换分辨率:销毁流服务 → 转5;
7)切换影片:销毁流服务 → 销毁句柄 → 转2;
8)销毁句柄卸载库。
网络连接类型/状态:net_state
enum net_state
NET_NOT_REACHABLE = 0, // 网络断开状态
NET_WWAN_REACHABLE = 1, // 手机网络连接(EDGE,3G,4G网络)
NET_WIFI_REACHABLE = 2, // 无线网络连接
媒体流模式:stream_mode
enum stream_mode
STREAM_MP4_MODE
= 0, //MP4模式
STREAM_FLV_MODE
= 1, //flv模式
STREAM_HLS_MODE
= 3, //hls模式
媒体流句柄状态:media_handle_state
enum media_handle_state
MEDIA_HANDLE_IDLE
= 0, //空闲状态
MEDIA_HANDLE_RUNNABLE = 1, //就绪状态
MEDIA_HANDLE_RUNNING = 2, //运行状态
MEDIA_HANDLE
= 3, //(下载)完成状态
MEDIA_HANDLE_ERROR
= 4, //出错
媒体基本信息:media_info
struct media_info
char[128] media_
//使用fileName
uint32_t media_stream_ //影片的分辨率数,决定该媒体对应的stream_info的个数
具体媒体文件的信息:stream_info
struct stream_info
uint32_t stream_
//使用服务器端数据库中的Definition(分辨率)字段作为流ID
char[64] sream_
//流名称(eg. 高清、标清、流畅...)
default_ //默认媒体流(非服务器字段,客户端维护,取自上次播放设置)
uint64_t file_
//文件大小(字节)
//视频时长
状态回调函数
handle_state_cb
Description
用户需要实现的全局回调函数,用以捕捉某个媒体状态的变化。另一方式是用户主动调用GetHandleState()方法获取句柄状态。
Return&Value
MediaHandle
HandleState
media_handle_state
媒体句柄状态
init_media_center
Description
程序启动时的全局初始化函数
Return&Value
文件保存路径
当前网络连接状态
反初始化库
media_center_cleanup
Description
全局反初始化函数
Return Value
创建媒体句柄
create_media_handle
Description
创建媒体句柄,作为每个媒体任务(点播/直播/下载)的唯一标识。包括向CMS播放器请求分辨率信息等逻辑。操作完成后会驱动media_handle_state状态迁移,并通知用户回调。如果切片,需要创建新的句柄。
Return&Value
返回媒体句柄MediaHandle
url、token 参考
CallBackFun
handle_state_cb
用户实现的回调函数,可以为NULL
销毁媒体句柄
destroy_media_handle
Description
销毁媒体句柄。如果有未销毁的流,会一并先销毁。
Return&Value
MediaHandle
获取媒体信息
get_media_info
Description
用户在start之前需要获取媒体的所有流信息才能从中选择播放哪一个。用户通过此函数得知一共有多少个对应的流。
Return&Value
MediaHandle
从CreateMediaHandle()获取的句柄。
media_info*
媒体信息,包含stream_info应有的数组个数
获取所有流信息
get_stream_info
Description
获取当前媒体对应的全部流信息。
Return&Value
MediaHandle
StreamInfo
stream_info*
获取流信息的数组
用户传入从media_info中获取的流个数,用来判断用户申请的stream_info数组大小是否足够。需要返回实际的数组个数。
启动流服务
start_stream_service
Description
开始http流服务。服务成功开启后播放器可访问ip:port来获取数据。如果切换分辨率需要start新的流服务,不必销毁handle。
Return&Value
MediaHandle
StreamMode
stream_mode
用户选择的媒体流服务端口
停止流服务
stop_stream_service
Description
结束当前流服务
Return&Value
MediaHandle
设置网络状态
set_net_state
Description
设置当前网络状态。内部根据新的网络状态决定是否提供上传或限速等。
Return&Value
当前网络状态
设置当前播放点
set_curr_play_time
Description
设置优先下载点(不影响播放器的当前播放,只用于优化下载)。
Return&Value
可播放的时间长度(毫秒)
MediaHandle
设置播放点的时间(毫秒)
获取媒体句柄状态
get_handle_state
Description
获取媒体句柄的当前状态。
Return&Value
媒体句柄当前状态
MediaHandle
获取当前下载速度
get_handle_state
Description
获取媒体句柄的当前状态。
Return&Value
媒体句柄当前状态
MediaHandle
获取已下载百分比
get_download_percent
Description
获取此媒体文件的已下载数据的百分比
Return&Value
MediaHandle
获取某时间点后的可播放时长
calc_can_play_time
Description
计算某时间点后的可播放时长
Return&Value
可播放时长(毫秒)
MediaHandle
用户指定的播放时间点
获取错误码
get_last_error
Description
获取指定媒体的当前错误码
Return&Value
MediaHandle
获取错误描述
get_error_info
Description
根据错误码返回错误描述
Return&Value
数据流请求方式
stream_service创建成功后,SDK作为本地http server向上层播放器提供hls数据流。用户通过地址http://127.0.0.1:port/vod.m3u8获取数据流(假设绑定的端口为port)。
错误码:与播放器

我要回帖

更多关于 ue4如何打包 的文章

 

随机推荐