我正在尝试使用 Vuforia 视频播放示例应用程序作为大学项目的起点。我想做的是开发一个基于 iOS 的小型应用程序,该应用程序将识别我定义的目标,并根据示例应用程序在目标上播放我选择的视频。我是 Vuforia 的新手,因此我非常感谢通过以下简单解释提供的帮助和指导:
使用目标管理器创建我自己的目标数据集并下载 .xml 和 .dat 文件后,我必须在哪里更新示例应用程序代码才能使用我的目标而不是 Stones&Chips 示例?
集成目标后,当检测到我的目标时,我需要修改哪些示例应用程序代码才能调用我自己的视频(从网络流式传输或存储在 iPhone 本地)? 正如我所说,我对这个环境非常陌生,我发现通过示例学习效果最好,因此我们将不胜感激任何帮助和指导......
最佳答案
首先,将数据集(.dat 和 .xml)文件和所有视频添加到资源/ Assets 组中。
然后,从 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;
}
关于ios - Vuforia 视频播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14840447/