问题标签 [google-nativeclient]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
333 浏览

google-chrome - nacl openal 示例在 Windows 上不起作用

我无法在 Win7 上获得开放的声音。我已经在 Mac 机器上针对pepper_23 构建了 naclports openal-ogg 示例,然后在 Win7 Chrome 中运行它们。
结果是跳过声音,我得到以下内容到 stderr:

AL lib: ppapi.c:95: 缓冲区欠载 AL lib: ppapi.c:95: 缓冲区欠载 ...

和标准输出:

可用的音频设备:PPAPI 输出无输出 ogg 文件,通道:1,速率:22050 num_samples:523734 缓冲区大小:1047468

sine_synth 示例在 Win7 上运行良好。ogg 文件显然可以正常读取,听起来它至少被部分解码(声音不是静态的)所以也许它是 openal-soft 中的一个错误?

有没有其他人看过这个? 有人能在Win7上成功使用openal-soft吗? 谁能给我一些关于如何调试的建议?我是新来的NACL。

谢谢!

0 投票
1 回答
4200 浏览

google-nativeclient - 在 Windows 上,如何在 Chrome 之外运行 Google 的 Native Client?

这个问题专门针对 Windows(64 位)。

此处提出了类似的问题,但答案似乎特定于 Linux(可能还有 OS X)。

非 Windows 的答案是使用 sel_ldr 但在 Windows 上的 Chrome 安装中没有这样的文件。nacl64.exe 似乎是具有相同功能的文件。这个页面提到了“NaCl 进程”,即使 Chrome 在 x64 Windows 上是 32 位进程,sel_ldr 也需要是 64 位,因此是一个单独的进程。我还看到 nacl64.exe 在我的插件加载时运行,而当我在没有加载 NaCl 插件的情况下启动 Chrome 时没有运行。

Visual Studio的NaCl 插件需要在 64 位窗口上运行,因此上面关于 64 位的注释。

在此页面上,我发现了一个在 Linux 上被报告为成功的示例:

在这里我也为 Linux 找到了这个例子:

所以我尝试了一些以此为模型的命令,但都导致 nacl64.exe 崩溃:

我已经验证了 hello_nacl_cpp_64.nexe 在通过网页在 Chrome 中运行时可以正常工作。

那么问题来了,在 Windows 上,如何在 Chrome 之外成功运行 Google 的 Native Client?

0 投票
1 回答
187 浏览

c - 编译原生客户端的 hello_world.c

在pepper_21 示例文件夹中是我正在尝试编译的hello_world.c 文件。这是我正在使用的命令:

这是错误:

我改编了这个页面的命令。怎样才能编译成功?

0 投票
0 回答
208 浏览

google-nativeclient - PNACL pthread_mutex_lock 调用在某些地方卡住了

我正在尝试将一些异步 PPAPI 调用转换为同步。在 CallOnMainThread 调用之后,调用线程使用下面提到的 Block() 函数被阻塞,并且在调用回调函数之后,线程在使用下面提到的 Resume() 函数回调之后恢复。

这里,done_mutex 和 done_cond 是 MyClass 的属性,分别初始化为 pthread_mutex_init(&done_mutex, NULL) 和 pthread_cond_init(&done_cond, NULL)。

我无法得到的是,从我的代码中的某些特定点调用此机制时失败,在这种情况下, pthread_mutex_lock(&done_mutex) 调用会无限期地卡住并且页面变得无响应。

我试图打印 pthread_mutex_t 结构的一些属性(如下所示),发现有些不规则。

mutex_type = 0 owner_thread_id = 0x7d01,recursion_counter = 1,mutex_handle = 94

似乎 owner_thread_id 属性的值是垃圾,因为在它工作正常的地方,这些值是 4 字节宽(例如,0x101594c8),而且,相同的值会一遍又一遍地出现。我无法弄清楚它是如何获取这些垃圾值的,而且仅在代码中的某些特定点也是如此。

我还尝试在 MyClass 中使用 done_mutex 作为 pthread_mutex_t 指针,在堆上分配它,然后按如下方式使用 pthread_mutex_init。

真正奇怪的是,当从代码中的这些特定点调用 pthread_mutex_init 调用后,done_mutex 被重置为 NULL,否则它按预期工作。

我正在使用pepper21 工具链编译我的代码并在pepper_canary 上进行尝试。这会导致这样的问题吗?

我已经坚持了很长时间了。任何帮助都感激不尽。

0 投票
1 回答
473 浏览

google-chrome - 带有 NaCl 扩展的音频效果

我刚刚开始研究 NaCl,希望能够制作音频浏览器扩展。文档中有一个正弦波演示,因此制作合成器似乎很简单。

我很想知道是否可以在输出之前捕获浏览器音频流,以便可以应用实时效果。这可能吗?

0 投票
1 回答
880 浏览

google-chrome-extension - 使用 libuv 监视文件更改

我想为开发人员工具构建一个 Chrome 扩展,以监视给定文件夹的更改并刷新/更新浏览器中的 CSS/JS/图像文件。

已经有类似的方法:

http://tin.cr

Tin.cr 使用的 NPAPI 未经过沙盒处理并且存在一些安全问题,因此我无法在一些公司政策有严格规定的开发环境中使用它(特别是在金融行业)。

另一种方法是使用 NaCl(Chrome 的 Native Client,沙盒)。

我是一名前端开发人员,对 C 知之甚少,所以我需要一些帮助。

如何查看/监控 libuv 中的文件更改?如果有人可以提供代码片段,我将不胜感激。

根据我从文档中了解到的情况,libuv 将允许扩展跨平台工作,我错了吗?

谢谢

0 投票
2 回答
1222 浏览

google-chrome-extension - 使用 NaCL 和外部库的 Google Chrome 扩展

我正在使用 NaCL 开发 Google Chrome 扩展程序。它非常酷且易于使用,但我有疑问。

我的扩展需要 GPGME(GnuPG Made Easy),所以我使用“--enable-shared”选项编译该库并将该库添加到 .mnf 文件中:

我还使用选项“-lgpgme”更新了 makefile,但是当我编译我的 .nexe 时,出现以下错误:“libgpgme.so:文件无法识别:文件格式无法识别”。

所以,我的问题是:

  1. 我可以在我的项目中使用外部库吗?
  2. 我怎样才能做到这一点?

——干杯,何塞

0 投票
2 回答
884 浏览

c++ - 如何将 Cave Story (NXEngine) 移植到 Native Client

因此,Native Client 可以从浏览器运行 C++ 代码,而且我知道NX 引擎 是从 C++ 构建的,并且可以进行调整以在 Android 上运行。那么,如果 NX 引擎可以运行 Cave Story,并且理论上可以在本机客户端中运行,那么您如何让它工作和托管,以便人们可以访问页面并在浏览器中玩游戏?

0 投票
1 回答
342 浏览

google-nativeclient - 如何使用原生客户端工具链?

我在自己的 Linux 操作系统中编译了本机客户端工具链。

在本机客户端源代码中,我发现使用make test_hello_world_nexe可以构建一个 hello world 程序并运行它。据我了解,它必须使用下载的工具链而不是您自己的工具链来编译,因为它不需要提供工具链的位置。

那么如何使用自己编译的工具链,将自己的应用程序构建成.nexe呢?

0 投票
1 回答
476 浏览

gdb - 在 MAC 上调试 32 位 NACL exe?

我希望在 mac 平台上调试 32 位 nacl exe。我无法调试它,因为在 mac 平台上我找不到 32 位 nacl-gdb。有没有人成功做到过?