最近在做一个AR视频的项目,就是扫描图片出相应的视频
需要的插件有:高通Vuforia,VideoPlayback
一、资源下载:
这里我们需要准备的资料如下:
1.一段视频:
因为视频一般较大,所以建议大家用格式工厂这个软件(网上有使用方法)压缩视频,可以大大压缩视频所占空间,唯一的缺点是不能在电脑上测试。
2.Vuforia官方提供的一个Video Playback组件:
下载地址在官网Downloads/Samples(链接地址)下面的Advanced Topics项:
下载之后得到压缩包文件:
二、案例操作:
1.导入上述中下载的资源,将.m4v格式的视频存放在Assets/StreamingAssets目录下面,再导入.unitypackage资源文件到工程中,解压下载的压缩文件可以得到三个资源包,此处我们只需要用到VideoPlayback.unitypackage即可
导入过程:在Project窗口中鼠标右键—>Import Package—>Custom Package...
选择VideoPlayback.unitypackage并导入工程中:
2.删除场景中的Main Camera,然后从Prefabs资源中找到ARCamera添加到场景中,然后再找到ImageTarget组件添加到场景中,识别图片所需的基本的设置步骤与之前的一致,只是把之前的3D模型替换为播放视频的组件Video:
3.设置Video中VideoPlaybackBehaviour的一些基本参数,主要有两个:视频路径和视频预览图(可以不添加),Auto Play需要勾上
4.调整Video组件的位置,使其位于图片正上方位置,如下图所示:
5.完成上述所有操作之后,我们还需要给ARCamera添加一个脚本VideoPlay,不添加此脚本的话,点击屏幕的播放按钮无法播放视频:
删除ARCamera下面的一个脚本:Default Initialization Error Handler
6.完成上述所有操作,打出apk包,然后用手机对着识别所以的图片,可以看到视频播放组件显示出来:
可能出现的问题:问题1:视频不能播放
解决方案:1、给ARCamera加上PlayVideo.cs
问题2:勾选auto play后,还是不能自动播放
解决方案:给ImageTarget 加上 TrackableEventHandler.cs
问题3:怎么做到点击播放视频
解决方案:给ARCamera加上VideoPlaybackTapHander
调整video的大小:
在使用VideoPlayback开发应用时,除了实现功能之外,还需要做到真实和美观。有的是,Video Play On Texture,就是视频在Texture上播放。当视频尺寸(Video)与Target尺寸(比例)不适配时,感觉播放的视频与Target不贴合,用户体验不是非常好。
在Inspector窗口修改Video的scale,在Unity editor场景下进行调试,对尺寸控制有效果,但是编译之后在手机上运行,没有效果。所以这种方式“治标不治本”。因为在VideoPlaybackBehaviour.cs这个脚本中,会判断当前的状态,状态主要分为:
复制代码
1
2
3
4
5
6
7
8
9
10
11
|
public
enum
MediaState
{
REACHED_END,
PAUSED,
STOPPED,
PLAYING,
READY,
NOT_READY,
ERROR,
PLAYING_FULLSCREEN
// iOS-only
}
|
复制代码
1
|
else
if
(state < VideoPlayerHelper.MediaState.NOT_READY)
|
复制代码
1
2
|
// 修改Video的尺寸
transform.localScale =
new
Vector3(-0.1f*0.8f, 0.1f, 0.1f * aspect);
|
正常运行时,主要控制尺寸就在这里。那么需要调整尺寸也是在这个地方。注意:x轴控制横向,z轴控制纵向