问题标签 [ppapi]

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 回答
330 浏览

python - 如何将 webports/naclports 中的 Python 模块与 Python 解释器 Chrome 应用程序一起使用?

Webports 在 ports 目录中有 Python 项目和几个 Python 模块,包括 NumPy。“python”端口编译一个在控制台窗口中运行 Python 解释器的 Chrome 应用程序。我希望能够在该解释器中使用包含本机代码的模块,例如 NumPy。

这是我尝试过的:

  • make numpy其次make python(希望 Python 构建过程看到我已经构建了 NumPy 并包含它),这似乎没有改变任何东西
  • 构建 python-static 包,该包失败并显示以结尾的巨大错误消息libppapi_simple_cpp.a: error: undefined reference to 'PSUserMainGet'
  • 复制out/build/numpy/numpy-1.8.0/numpy/到 Python 应用程序中的site-packages文件夹中pydata.tarimport numpy失败并显示一条错误消息,告诉我不要从其源目录导入 NumPy。
  • 复制out/build/numpy/numpy-1.8.0/build/lib.linux-x86_64-2.7/numpy/(其中似乎已编译 .so 文件)到 .so 中的site-packages文件夹中pydata.tarimport numpy此回溯失败:

    /li>

我在pepper_47Docker 容器中使用 PNaCL 工具链版本来构建包,并且我在 Xubuntu 上的 Chrome 47.0.2526.106(64 位)上运行 Python 应用程序。

0 投票
0 回答
417 浏览

c# - DirectShow SDK + Adob​​e Flash Player PPAPI

每个人。

我使用这个项目。http://www.codeproject.com/Articles/437617/DirectShow-Virtual-Video-Capture-Source-Filter-in

它在 GrabStupid 上工作。它适用于浏览器(例如在 Google Chrome(->GH) 中(旧版本)它有效,但在最新版本中无效)。我开始搜索问题并找到它!在旧版本(45 之前...)GH 使用外部 Adob​​e Flash Player(->AFP)类型:NSAPI,在最新版本 GH 中使用 AFP 类型:PPAPI。我不知道为什么,但 PPAPI 不了解我的相机。我必须得到一些规范 - PPAPI 理解相机(就像相机,作为捕获设备)但不能从这个设备中获取数据。

如何知道为什么 PPAPI 无法从我的虚拟设备中获取数据?NSAPI 和 PPAPI 有什么区别。为了 PPAPI 开始获取数据,我必须在我的这个项目中更改什么?

0 投票
1 回答
828 浏览

google-chrome - 使用 Google Native 客户端访问已安装的打印机并将原始数据打印到标签打印机

我们的 Web 应用程序有一个流程,在单击页面上的打印按钮时,来自服务器的原始数据会在用户选择的打印机(Zebra 标签打印机)上打印在客户端机器上。浏览器和服务器之间的交互顺序如下:
1)用户点击页面上的打印
2)服务器返回一个小程序
3)这个小程序与服务器建立 url 连接以检索打印数据
4)小程序然后查找列出安装在客户端机器上的打印机并显示打印机选择对话框。所有的打印机查找都是使用 javax.print 完成的。
5) 一旦用户选择了标签打印机,applet 就会创建一个打印作业并将其发送到选定的打印机。标签被打印出来

现在,由于谷歌已经从 chrome 中删除了 NPAPI,我们正在研究我们必须有哪些替代方案才能在 chrome 上获得相同的功能,特别是在 windows 上。最初通过 Google 本地客户端文档,我们认为我们可以使用 PNACL 实现上述用例。以下代码来自 MSDN,它是使用 winspool.h 将原始数据打印到默认打印机的例程

BOOL RawDataToPrinter(LPBYTE lpData, DWORD dwCount) {

最初我们认为我们可以从一个辣椒插件中调用上述例程。页面上的 javascript 将检索标签数据并将其传递给本机客户端实例,这将调用 RawDataToPrinter(..) 例程。
但是,根据我们从论坛中了解到的情况,本机客户端将无法访问/查找打印机并将原始数据假脱机到选定的打印机。它不允许您调用它们提供的 api 端口之外的任何东西
是这种理解正确吗?如果是,那么是否有任何替代方法可以在 chrome 上实现上述用例?如果否且上述情况可行,是否有任何可用端口允许访问安装在客户端计算机上的打印机并允许我们将数据打印到所选打印机?

0 投票
2 回答
244 浏览

google-chrome - 从执行的 .pexe 文件中提取输出/结果

我的目标是将 C++ 程序转换为 .pexe 文件,以便稍后在远程计算机上执行它。.pexe 文件将包含一些要在远程计算机上计算的数学公式或函数,因此我将基本上使用远程计算机的计算能力。对于所有这一切,我将使用 nacl_sdk 和 Pepper 库,如果有人能为我澄清一些事情,我将不胜感激:

  1. 是否可以将远程计算机上执行的 .pexe 文件的输出保存到文件中,如果可以的话,如何?支持哪些文件格式?
  2. 是否可以将远程计算机上执行的 .pexe 文件的输出自动发送到主机,如果可以,那么如何?
  3. 我是否必须安装任何东西才能在远程计算机上工作?

任何建议将不胜感激。

0 投票
1 回答
129 浏览

c++ - 使用 PNaCl 的命名空间“pp”中没有名为“VarDictionary”的类型

有人可以解释我为什么会收到编译错误

我想在函数中设置字典

我从这个谷歌页面的底部复制了这个例子https://developer.chrome.com/native-client/devguide/coding/message-system

并尝试了像这样简单的事情

但是当我编译代码时,我收到错误消息pp::VarDictionary dictionary;但是没有问题pp::VarArray an_array;

我正在使用来自 Google 的 Makefile

0 投票
0 回答
126 浏览

windows - 我可以将 Vulkan 与胡椒 API 一起使用吗

我在这里读过:Calling Windows API from Native Client/Pepper Plugin

如果您使用 chrome 启动 chrome --no-sandbox,您可以调用 windows api。所以我的问题是,如果我使用该标志,--no-sandbox我可以开发一个辣椒插件,它只能在我的计算机上运行,​​使用Vulkan

0 投票
1 回答
1808 浏览

c++ - 将 c++ 代码(本机客户端)移植到浏览器(Web 应用程序)

我有一个使用 Qt-creator SDK 编写的 c++ 模块。我想移植此代码以在任何网页上运行,而不会损害最终用户的源代码。用户应该能够在任何浏览器(Chrome、Firefox、Safari、Explorer)上看到此模块的输出,而无需安装任何额外的浏览器插件。有什么更好的选择可以实现这一目标。我用谷歌搜索并发现很少有这样的选项:

  1. Google Native 客户端 (NaCl) - 但它仅在 Chrome 上运行。这是 Web 应用程序的未来吗?
  2. PPAPI - 不确定它是否与 NaCl 相同
  3. NPAPI - 几乎被贬低
  4. Emscripten - 它将 c++ 转换为 js。所以源代码对用户是可见的。
  5. WebAssembly

还有其他选择可以实现我正在寻找的东西吗?如果不是,我应该从上述选项中选择哪一个!?提前谢谢了。一个

0 投票
0 回答
256 浏览

opengl - 如何在使用 OpenGL 的 PPAPI 插件中获取当前的 EGLContext

我尝试开发一个使用 OpenGL PPAPI Wrapper 渲染 3D 图形的 PPAPI 插件(在 Chromium 应用程序中)。此外,我想利用一个 EGL 扩展,它允许我访问在另一个进程中呈现的共享 DirectX 纹理。我想在 PPAPI 的 Graphics3D OpenGL 上下文中使用这个纹理(以在插件的 UI 元素中显示它)。

在 PPAPI 插件中,我能够访问共享的 D3D 纹理并创建一个 EGL 表面(即实际上是一个 PBuffer,使用 eglCreatePbufferFromClientBuffer)。但是,我假设当尝试将此表面绑定到插件的 OpenGL 上下文中的 OpenGL 纹理时,我的 EGLSurface 与我在 PPAPI 的 OpenGL 上下文中创建的纹理处于不同的上下文中。

这可能是由于我设置了自己的 EGLDisplay 和自己的 EGLContext

但是,尝试使用现有上下文 eglGetCurrentContext() 会返回 EGL_NO_CONTEXT,与显示相同。

所以我需要的是访问插件的实际 EGLContext。我怎样才能做到这一点?我可以以某种方式在 EGL 中共享使用 glSetCurrentContextPPAPI() 创建的上下文吗?感谢您对此的任何提示!

0 投票
1 回答
127 浏览

javascript - 如何自定义一个可以被 Javascript 使用的 ppapi?

我正在研究 Chromium PPAPI。在查看了此处官方参考的所有 API 后:https ://developer.chrome.com/native-client/cpp-api-dev ,我很少发现任何可以被 JS 使用或直接与 JS 通信的 API。在我看来,一个插件进程会建立一个 PP::instance 并且这个实例中的所有函数都会被加载。以 video_capture.cc 为例,您可以在 chromium 源代码的 /ppapi/examples/video_capture 下找到它。在这个例子中,一个名为 VCDemoInstance 的自定义 PP::instance 注册了一些方法,但我发现只有 HandleMessage() 可以与 JS 层通信。在 JS 中,您可以使用 postMessage() 将某些内容传递给上面的 HandleMessage()。

所以这是我的关键问题:有没有办法在 PP::instance 中创建或定义一个可以被 JS 层直接使用或与之通信的方法?是否可以注册一个 JS 对象并像obj.apiFromPlugin一样调用 PPAPI ?至少我知道在 Opera JSPP 框架中是可以做到的。

如果有任何问题,请纠正我。你很感激。

0 投票
0 回答
1222 浏览

python - 如何通过selenium python在chrome的--incognito模式下启用flash

我希望它可以在 --incognito 模式下加载和启用闪存。但我不知道怎么做。

详细信息:我将 selenium python 用于 chromedriver。有一个视频区域的网站需要加载 Flash。这是我的代码,当我激活 --incognito 模式时,虽然页面成功加载了 flash,但我必须单击视频区域才能启用它。如果不激活 --incognito 模式,视频可以自动显示。