如何在 xamarin 表单中使用 wikiitude 插件?

2024-01-04

我正在使用 Xamarin 开发跨平台 AR 应用程序。我正在使用 Wikitude 即时跟踪。

我能够启动 Wikitude 活动并能够运行即时跟踪...现在我想在跟踪时捕获高分辨率图像...我正在尝试构建插件来获取帧,然后将其转换为图像流

她是我的维基百科活动

 namespace XamarinExample.Droid
    {
        [Activity(Label = "WikitudeActivity")]
        public class WikitudeActivity : Activity, ArchitectView.IArchitectUrlListener
        {
            ArchitectView architectView;
            string worldUrl;

            protected override void OnCreate(Bundle bundle)
            {
                base.OnCreate(bundle);

                SetContentView(Resource.Layout.sample_cam);

                Title = Intent.GetStringExtra("id");

                worldUrl = "Wikitude" + File.Separator + Intent.GetStringExtra("id") + File.Separator + "index.html";

                architectView = FindViewById<ArchitectView>(Resource.Id.architectView);

                ArchitectStartupConfiguration startupConfiguration = new ArchitectStartupConfiguration();
                startupConfiguration.setLicenseKey(Constants.WIKITUDE_SDK_KEY);
                startupConfiguration.setFeatures(ArchitectStartupConfiguration.Features.ImageTracking);
                startupConfiguration.setCameraResolution(CameraSettings.CameraResolution.Auto);



/////////////////////////////// Register  Plugin////////////////////////////////////


                var plugins = new Plugin01("test");
                architectView.RegisterPlugin(plugins);

                architectView.OnCreate(startupConfiguration);
                architectView.RegisterUrlListener(this);
            }

    }

我的插件代码取自 http://stackoverflow.com/questions/43843912/wikitude-plugin-in-xamarin-captured-image?noredirect=1#comment80270100_43843912

public class Plugin01 : Com.Wikitude.Common.Plugins.Plugin
 {
    public Plugin01(string p0) : base(p0)
    {

    }    
    Frame currentFrame = null;
    public override void CameraFrameAvailable(Frame p0)
    {
    System.Diagnostics.Debug.WriteLine("AVAILABLE FRAME");
        try
        {
            var data = p0.GetData();
            currentFrame = p0;
        }
        catch (System.Exception ex) { }
    }

    public override void Update(RecognizedTarget[] p0)
    {
            System.Diagnostics.Debug.WriteLine("AVAILABLE FRAME");
        if (p0 != null)
        {
            if (currentFrame != null)
            {
               // ConvertYuvToJpeg(currentFrame, p0[0]);
            }
        }
    }

}

我已经注册了插件但它没有调用
public override void Update(RecognizedTarget[] p0) 方法....我在这里做错了什么?


我认为问题是在错误的方法中调用“RegisterPlugin”,因为您知道调用活动方法的周期是不同的。您应该在活动的“OnPostCreate”方法中调用它。 尝试下面的代码并让我知道结果:

protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);
        try
        {
            SetContentView(Resource.Layout.Main);
            architectView = FindViewById<ArchitectView>(Resource.Id.architectView);
            var config = new ArchitectStartupConfiguration();
            config.setLicenseKey(WIKITUDE_SDK_KEY);
            architectView.OnCreate(config);
        }
        catch (Exception ex) { Toast.MakeText(this, ex.ToString(), ToastLength.Long); }
    }

protected override void OnPostCreate(Bundle savedInstanceState)
    {
        base.OnPostCreate(savedInstanceState);
        if (architectView != null)
            architectView.OnPostCreate();
        try
        {
            try
            {
                string url = string.Format(@"file:///android_asset/01_ImageRecognition_1_ImageOnTarget/index.html");
                architectView.Load(url);
                Plugin01 cardPlugin = new Plugin01("com.plugin.dpiar");
                architectView.RegisterPlugin(cardPlugin);
            }
            catch (Exception ex) { }
        }
        catch (Exception ex) { Toast.MakeText(this, ex.ToString(), ToastLength.Long); }
    }

考虑更改变量名称。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 xamarin 表单中使用 wikiitude 插件? 的相关文章

  • 使用 Xamarin 和 Azure AD B2C 设置自定义选项卡的样式

    我效仿了验证示例 https developer xamarin com samples xamarin forms WebServices TodoAzureAuthADB2CClientFlow 将自定义 Chrome 选项卡与 Azu
  • 动态显示/隐藏 Xamarin.Forms.ListView 的页眉或页脚

    有没有一种方法可以根据运行时的条件动态显示 隐藏 ListView 的标题
  • 此列表分配如何进行?

    我看过这个代码示例 它看起来像是将一个数组初始值设定项分配给一个列表 我以为它不会工作 但不知何故它编译了 不是数组初始值设定项吗 Children 的类型为 IList 如果大括号前没有 新列表 它如何工作 var nameLayout
  • Xamarin - 在 xmlns clr 命名空间中找不到类型

    我正在制作一个 Xamarin Forms 应用程序 解决方案称为RESTTest 我的共享项目名为RestApp 在我的共享项目中 我有一个名为ViewModels 其中包含一个名为MainViewModel cs 我有一个名为MainP
  • Xamarin 分步向导 Android 视图

    我想在 Xamarin c 中构建一个 android 活动 用于逐步注册和 或信息 我怎样才能做这样的事情 谁能给我一个代码示例或其他东西 谢谢 基本上你需要使用一个名为 a 的元素ViewPager 并且每个页面都会不同Fragment
  • 使用 Xamarin.Forms 和 Zxing 生成 QR 码

    我在网上看到了很多关于这个的内容 旧帖子 但似乎没有什么对我有用 我正在尝试从字符串中生成二维码并将其显示在应用程序中 这就是我一开始的情况 qrCode new ZXingBarcodeImageView BarcodeFormat Ba
  • Android - 正确使用 invalidateOptionsMenu()

    我一直在寻找很多invalidateOptionsMenu 我知道它的作用 但我想不出这种方法在现实生活中有用的任何例子 我的意思是 例如 假设我们要添加一个新的MenuItem to our ActionBar 我们可以简单地获取菜单on
  • 如何在Xamarin Forms中实现Google Auth登录?

    我是 Xamarin 新手 我希望使用 Xamarin Forms 在我的新应用程序中进行 Google 登录 正确的方法是什么 有更新的教程或视频来指导吗 从哪儿开始 thanks 除了link https developer xamar
  • 在应用程序简历中隐藏软键盘

    我有一个 Android 应用程序 使用 Xamarin 用 C 编写 我已将应用程序简化为包含 TextView 和用于横幅广告的 Google admod AdView 的 LinearLayout 我不希望软键盘出现在应用程序中 这不
  • xaml UI 未以 xamarin 形式更新

    我将我的模型与我的 UI 绑定 在我的模型中 我做了一些计算 但其他属性与 UI 绑定 但我完成计算的某些属性不与我的 UI 绑定 而是在我的 OnPropertyChange 事件中显示计算 帮助我解决我的代码问题在哪里 提前致谢 我的模
  • 保护 APK 中的字符串

    我正在使用 Xamarin 的 Mono for Android 开发一个 Android 应用程序 我目前正在努力使用 Google Play API 添加应用内购买功能 为此 我需要从我的应用程序内向 Google 发送公共许可证密钥
  • 将 React Native 集成到 Xamarin 项目中

    我的任务是看看是否可以将 React Native 集成到 Xamarin Forms 项目中 我认为我已经非常接近实现这一目标 但我不能肯定地说 我知道这是一个有点奇怪 倒退的解决方案 但无论如何我想尝试一下 看看我是否可以打败它 Int
  • Xamarin - SignalR 挂在连接上

    我正在尝试将我的 Xamarin 应用程序连接到托管在 Azure 上的 SignalR 后端 我遇到的问题是每次我在 HubConnection 上调用 StartAsync 时 它都会挂起客户端并且请求永远不会完成 我尝试通过应用程序进
  • Xamarin Forms 地图 - 如何刷新/更新地图 - CustomMap 渲染器

    如果您正在寻找完整的折线 图钉 图块 UIOptions 以及很快的 3D 效果 渲染 实现 您应该在我在 GitHub 上创建的公共 github 上进行搜索XamarinByEmixam23 地图 https github com Em
  • 可移植类库配置文件 78 缺失属性相关方法/属性

    在我的 PCL 核心项目 WP8 Android iOS Xamarin MvvmCross 中 我使用自定义属性 Type GetCustomAttributes 扩展方法允许我检查所使用的属性 使用 PCL Profile104 效果很
  • Xamarin C# 错误:SecureChannelFailure(身份验证或解密失败。)

    我用这个 WebClient mClient new WebClient mClient UseDefaultCredentials false mClient Credentials new NetworkCredential Name
  • Device.BeginInvokeOnMainThread 的用途是什么?

    我希望有人向我解释什么是 Device BeginInvokeOnMainThread 以及它的用途是什么 还有一些使用案例的示例 只是添加一个例子 假设你有一个异步方法DoAnyWorkAsync如果你这样称呼它 仅作为示例 DoAnyW
  • Azure 应用服务 - 自定义身份验证 - 不允许 HTTP 动词

    我按照本教程在我的 Xamarin Forms 应用程序中启用身份验证 https adrianhall github io develop mobile apps with csharp and azure chapter2 custom
  • 如何结合 AD B2C(MSAL) 和 CosmosDB

    我在我的 Xamarin 表单应用程序中使用 appcenter Auth 和 Data 但微软正在关闭这些服务 所以我现在需要自己做 Atm 这两个允许我使用 ADB2C 验证我的用户 然后授予他们访问 Cosmos 数据库中自己和共享内
  • 如何在android上使用xamarin表单执行脚本

    我正在尝试在 Android Mono 上使用 Xamarin Forms 运行 C 脚本 当我运行脚本时 我收到错误 System IO FileNotFoundException 找不到文件 mscorlib dll 这是我试图执行的代

随机推荐

  • 如果 rxjs 仍在加载数据,如何返回数据或等待

    我有一个服务 它使用 Observable 在其构造函数中加载一些数据 然后在稍后的某个时间可以使用 getter 检索数据 如果数据存在 它应该立即返回数据 或者等待加载完成 如果仍在进行中 我想出了以下示例 代码在 Typescript
  • R Shiny 应用程序中的“下一步”按钮

    我正在尝试使用 Shiny 构建一个逐步的应用程序 我的目标是创建一个由数据库中编写的一堆问题组成的考试 我需要的是一个 下一步 按钮 当您单击另一个问题时会显示该按钮 我一直在尝试使用 操作按钮 但它只是第一次起作用 也就是说 第一次单击
  • 从 C++11 中的 std::exception 派生时的异常规范

    我有一个异常类如下 include
  • Gridster 的替代品? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我已经用过Gridster http gridster net 使用拖放多列网格的项目的库 遗憾的是
  • Angular HttpPromise:“success”/“error”方法和“then”参数之间的区别

    根据AngularJS 文档 http docs angularjs org api ng 24http 调用 http返回以下内容 返回一个promise符合标准的对象then方法和两个http具体方法 success and error
  • 如何自定义条形注释以不显示所选值

    我有以下数据集 data 6 92 1 78 0 0 0 0 3 5 8 82 3 06 0 0 0 0 5 54 10 8 6 03 0 0 0 0 6 8 13 69 8 61 9 98 0 0 9 42 4 91 3 54 2 62
  • Rails 生成迁移未将 :null => false 设置为created_at 和updated_at

    我创建了一个全新的 Rails 应用程序 生成一些脚手架和一些模型 经过几次测试后 我意识到 t timestamps 生成的列不包含 传统 null gt false 选项 我需要这种行为 我看不出这是做什么的 我重新创建了一个新应用程序
  • 自定义列的 ExecuteStoreQuery

    我正在尝试运行自定义查询并且正在使用实体框架 我尝试了这个 string query SELECT dm DistrictName sm SchoolName u UserId u FirstName u LastName sa Stude
  • 用于识别 2D 特征的图像处理

    我创建了一个 iPhone 应用程序 它可以扫描一张方格纸的图像 然后告诉我哪些方块已被涂黑 哪些方块是空白的 我通过从左到右扫描并使用方格纸的线条作为指导来完成此操作 当我遇到方格纸线时 我开始寻找黑色 直到再次碰到方格纸线 然后 我不再
  • 随机数生成器的实现[重复]

    这个问题在这里已经有答案了 可能的重复 随机数生成器如何工作 https stackoverflow com questions 1716308 how does a random number generator work 我正在寻找 C
  • NodeJS:与 PHP 集成

    我听说 Node JS 非常适合制作实时聊天应用程序 我想在我的网站上实现聊天 现在我只有设计 所以我现在必须编写后端代码 但是当我使用时socket io express它并没有像它应该的那样工作 代码来自server js var ap
  • 通过 http 加载数据之前 angular2 kendo ui 网格的 busyindicator

    我正在使用 angular2 kendo ui 网格并通过 http 调用将数据绑定到网格 在http调用返回数据之前 我需要显示忙碌指示器 而不显示网格标题 直到分配数据 如何实现此目的 谢谢 拉古斯 我通过在 HTML 模板中声明以下内
  • 创建静态资源字典

    我创建了一个资源字典 希望将其与多个用户控件 xaml 文件合并 我只想创建此资源字典的一个实例 知道如何做到这一点吗 注意 合并应该仅通过 xaml 进行 而不是通过代码进行 感谢和问候 维沙尔 这个怎么样 class Dictionar
  • 在 JavaFX 的 FXML 文件中指定 ResourceBundle

    可以设置一个ResourceBundle在 Java 类中使用下面的代码 FXMLLoader loader new FXMLLoader getClass getResource my view fxml loader setResour
  • 如何刷新我的gridView?

    我有一个ListView 当我单击列表视图行的按钮时 将在列表中创建一个按钮main xml 我有onclicklistener自定义 listView 适配器中的按钮 我正在 sqlite 中保存该按钮的点击 并通过该 sqlite 我正
  • Java中两个字符串的交集

    需要一个 Java 函数来查找两个字符串的交集 即字符串共有的字符 例子 String s1 new String Sychelless String s2 new String Sydney Using HashSet
  • CakePHP 3.0 - 更改密码时将数据库密码与旧密码进行比较

    我正在开发 CakePHP 3 0 我想将数据库密码与 更改密码 功能中表单中输入的旧密码进行比较 但我无法这样做 因为密码经过哈希处理 即使我们使用相同的密码 哈希密码每次都不同 请帮助我 提前致谢 近战 我会在您的 UsersTable
  • log4j:WARN 无法识别的元素滚动策略

    当我的应用程序启动时 我在日志中收到此警告 log4j WARN Unrecognized element rollingPolicy 尝试向 Google 寻求答案 但添加 apache log4j extras 1 1 jar 并没有帮
  • 请输入提交消息来解释为什么需要进行此合并,特别是如果它将更新的上游合并到主题分支中

    我正在使用 Git 我从远程仓库拉取并收到一条错误消息 请输入提交消息来解释为什么需要合并 特别是如果它将更新的上游合并到主题分支中 I try to type a message and press Enter but nothing h
  • 如何在 xamarin 表单中使用 wikiitude 插件?

    我正在使用 Xamarin 开发跨平台 AR 应用程序 我正在使用 Wikitude 即时跟踪 我能够启动 Wikitude 活动并能够运行即时跟踪 现在我想在跟踪时捕获高分辨率图像 我正在尝试构建插件来获取帧 然后将其转换为图像流 她是我