我正在尝试使用Vuforia Video Playback示例应用程序作为大学项目的起点。我想要做的是开发一个基于iOS的小应用程序,它将识别我定义的目标,并根据示例应用程序在目标上播放我选择的视频。我是Vuforia的新手,所以我非常感谢一些帮助和指导,通过以下简单的解释:
使用目标管理器创建了我自己的目标数据集并下载了.xml和.dat文件,我在哪里更新示例应用程序代码以便使用我的目标而不是Stones& Chips示例
一旦我将目标集成在一起,当检测到目标时,我需要修改哪些示例应用程序代码来调用我自己的视频(从网络流式传输或本地存储在iPhone上)? 正如我所说的,我对这种环境非常陌生,并且发现我通过实例学习得最好,所以任何帮助和指导都会非常感激......
答案 0 :(得分:1)
首先,将您的数据集(.dat和.xml)文件和任何视频添加到资源/资产组。
然后,从VideoPlayback-2-0-7开始,您需要在VideoPlaybackAppDelegate.mm中编辑以下行。
更新数据集以匹配数据集(.dat和.xml)的文件名。 第92行:
[qUtils addTargetName:@"Stones & Chips" atPath:@"StonesAndChips.xml"];
更新视频以匹配您添加的所有视频。 从第148行开始:
switch (i) {
case 0:
filename = @"VuforiaSizzleReel_1.m4v";
break;
default:
filename = @"VuforiaSizzleReel_2.m4v";
break;
}
更新EAGLView.h中的视频目标数量。 第25行:
#define NUM_VIDEO_TARGETS 2
更新EAGLView.mm中的视频纹理。请注意,您需要为每个可跟踪设置一个纹理,否则应用程序将崩溃。加载纹理的代码没有错误检查。 从第39行开始:
// Texture filenames (an Object3D object is created for each texture)
const char* textureFilenames[] = {
"icon_play.png",
"icon_loading.png",
"icon_error.png",
"VuforiaSizzleReel_1.png",
"VuforiaSizzleReel_2.png"
};
更新EAGLView.mm中的目标名称匹配代码。 从第357行开始:
// VideoPlayerHelper to use for current target
int playerIndex = 0; // stones
if (strcmp(imageTarget.getName(), "chips") == 0)
{
playerIndex = 1;
}