AR视频制作

最近在做一个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
}
在OnRenderObject()这个方法中,会判断状态,当状态为REACHED_END,PAUSED,STOPPED,PLAYING,READY之一,就会设置Video的尺寸。
复制代码
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轴控制纵向


你可能感兴趣的:(Unity,AR视频制作)