0

我正在尝试使用 Vuforia Video Playback 示例应用程序作为大学项目的起点。我想做的是开发一个基于 iOS 的小型应用程序,该应用程序将识别我定义的目标,并根据示例应用程序在目标上播放我选择的视频。我是 Vuforia 的新手,因此我非常感谢通过对以下内容的简单解释获得一些帮助和指导:

  1. 使用目标管理器创建了我自己的目标数据集并下载了 .xml 和 .dat 文件后,我必须在哪里更新示例应用程序代码才能使用我的目标而不是 Stones&Chips 示例?

  2. 一旦我集成了我的目标,当检测到我的目标时,我需要修改哪些示例应用程序代码来调用我自己的视频(从网络流式传输或本地存储在 iPhone 上)?正如我所说,我对这种环境非常陌生,并且发现我通过示例学习得最好,因此非常感谢任何帮助和指导......</p>

4

1 回答 1

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;
}
于 2013-03-25T20:03:42.673 回答