Vuforia视频播放

时间:2013-02-12 19:41:32

标签: ios vuforia

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

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

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

1 个答案:

答案 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;
}