我找到了一份新闻稿,声明Mono现在支持本机客户端的编译.目前还不清楚这是仅可以从单独的github mono fork获得,还是作为标准发行版的一部分提供.
我已经构建了分叉单声道发行版,但是我无法找到有关如何构建本机客户端可执行文件的任何示例,以便我可以在Chrome中运行它.
有人知道一个示例项目,或者您能提供一个如何为NaCl构建Mono应用程序的示例吗?
如何将二进制数据egmp3/mp4数据发送回前端Javascript端?
我知道有两种方法可以实现:利用NACL提供的沙盒文件系统并获取前端的url; 通过mp3/mp4使用传递数据PostMessage().如果有人能给我一个如何传递二进制数据的简单例子,那就太好了VarArrayBuffer.NACl FileSystem API有一个Pong示例,但我对如何将文件位置检索为url感到困惑,以便前端js可以通过消息获取它.
这是我到目前为止所做的,使用第二种方法传递数据PostMessage()和PostMessage():
我成功地从在线mp4文件中检索数据并将其存储在char矢量中VarArrayBuffer.
将数据转储到新的char缓冲区并创建vector<char> outputBuffer以保存数据并将其传递给JS端
char* binaryBuffer = new char[outputBuffer.size()];
int increment = 0;
for (vector<char>::iterator it = outputBuffer.begin();
it != outputBuffer.end(); it++) {
binaryBuffer[increment] = *it;
}
pp::VarArrayBuffer outBuffer(binaryBuffer);
instance_->PostMessage(outBuffer);//instance_ is a NACL module instance
Run Code Online (Sandbox Code Playgroud)那么,JS方面应该如何捕获数组缓冲区?通过VarArrayBuffer还是其他什么?谢谢.
我有一个适用于Chrome的NaCl插件,我想填满整个窗口.HTML是这样的:
<!DOCTYPE html>
<html>
<head></head>
<body>
<div class="container,box">
<object class="internal,box"></object>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我尝试了几种风格:
html {
height: 100%;
}
.box {
position:absolute;
left/right/top/bottom: 0;
display:block;
padding: 5px
}
填充整个窗口,保持默认大小300x150.
html, body, .box { padding: 0; border: 0; margin: 0; width: 100%; height: 100% }
.container { padding: 5px; }
填充整个窗口,但它的宽度/高度不受填充的影响,因此溢出包含
有没有人面临类似的问题?任何CSS解决方案?我需要它才能在Chrome中使用.
我发现了它,chrome://flags/但我真的不知道这是什么.我在网上搜索了很多,但我没有找到任何东西.
javascript sockets google-chrome websocket google-nativeclient
我对Chrome中本机客户端的实用程序感到困惑,除了使用您选择的语言并运行得更快.
可以在javascript中无法在本机客户端完成任何事情吗?无论如何,我的意思是功能,而不是更好/更快的方式做同样的事情.例如,javascript无法打开UDP套接字,但本机客户端可以.
我正在尝试将FFmpeg移植到我的NaCl模块中.
到目前为止,我的模块链接了ffmpeg和SDL库.
它已经可以播放YUV格式的视频,它被定向加载到内存中并复制到YUVOverlay缓冲区(这很容易).
现在,我想使用ffmpeg来解码视频,但是当我调用函数avformat_open_input时,它会-5在输入为URL字符串时返回,例如rtmp://或mmsh://; -1052488119输入是文件名时返回,例如/saved/tmp(我挂载文件系统--html5fs).
有一些问题:
如果我不清楚我的问题或描述,你可以告诉我.如果您正在做同样的事情或遇到同样的问题,我们可以一起讨论.
谢谢,Jar
我有一个网站和谷歌浏览器扩展程序.扩展使用NaCl API(JavaScript)从用户的计算机写入/读取文件(C++).
我的问题是:我可以在我的网站中加载我的扩展程序,例如,在iFrame中保存其功能吗?
我试图这样做,但它只加载扩展"视觉"部分.写/读(NaCl)功能不起作用.
一个更好地解释我想做的事情的例子:
它实际上是这样工作的:

我想这样做:

或者另一种方式,但我认为这不可能,是吗?

可能吗?我该怎么做?
编辑
这是代码:
在manifest.json中,我把它放在:
"externally_connectable": {
"matches": ["http://www.example.com/index.html"]
},
"web_accessible_resources": [
"/*"
],
"content_scripts" : [
{
"matches" : ["http://www.example.com/index.html"],
"js": ["index.js"]
}
],
Run Code Online (Sandbox Code Playgroud)
我的网站的iframe:
<iframe src="chrome-extension://myextensionid/index.html"></iframe>
Run Code Online (Sandbox Code Playgroud)
在我的扩展index.js文件中,只有两个按钮.它们的函数(JavaScript)与.cc文件(通过NaCl)进行通信,以将字符串保存或加载到计算机上的文件中.
正如我所说,扩展工作正常,但当我尝试通过iframe在我的网站加载它时,它只加载html(可视).只要JS使用NaCl调用C++函数,JavaScript就不会加载C++.
有解决方案吗
javascript c++ google-chrome google-chrome-extension google-nativeclient
当我按照Linux上的ARC开源入门指令的第4步时,出现如下错误.操作系统是在Hyper-V中运行的Ubuntu 14.04 LTS.
UBUNTU14:〜/ arc $ ./configure
错误:root:运行['third_party/tools/depot_tools/third_party/gsutil/gsutil','cp','gs:// arc-build/naclports/builds/pepper_40/python .zip','/ tmp/tmpUZ0IoK/naclports-python']错误:root:GSResponseError:status = 403,code = None,reason = Forbidden.错误:root:尝试prodaccess,如果它没有解决问题,请尝试rm~/.devstore_token @@@ STEP_WARNINGS @@@错误:root:9秒后重试Traceback(最近一次呼叫最后一次):文件"/ home/fkiller/arc/src/build/build_common.py",第938行,包装返回函数(*args,**kwargs)文件"/home/fkiller/arc/src/build/util/download_package_util.py",第243行在_download_package_with_retries self._download_method(URL,download_package_path)文件 "/home/fkiller/arc/src/build/util/download_package_util.py",线路119,资讯_点击下载build_common.get_gsutil_executable(), 'CP',URL,destination_path可] )文件"/home/fkiller/arc/src/build/util/download_package_util.py",第97行,在execute_subprocess中输出= subprocess.check_output(cmd,cwd = cwd,stderr = subprocess.STDOUT)文件"/ usr/lib /python2.7/subprocess.py",线路573,在check_output提高CalledProcessError(RETCODE,CMD,输出=输出)CalledProcessError:命令 '[' THIRD_PARTY /工具/ depot_tools/THIRD_PARTY /的gsutil/gsutil会 ' 'CP',' GS://弧-BU ild/naclports/builds/pepper_40/python.zip','/ tmp/tmpUZ0IoK/naclports-python']'返回非零退出状态1
有没有想过解决这个问题而不改变构建脚本?我可以从其他来源手动指向python.zip,例如https://naclports.storage.googleapis.com/builds/pepper_40/trunk-147-g49eb4c9/publish/python/pnacl/python.zip,但我想构建它就像没有改变脚本一样.
我已经尝试设置gsutil及其身份验证器,但它没有解决问题.
编辑:在@elijah-taylor修复ACL后,现在我收到错误
回溯(最近一次调用最后一次):文件"src/build/configure.py",第365行,在sys.exit(main())文件"src/build/configure.py",第347行,在主_gclient_sync_third_party()中文件"src/build/configure.py",第132行,在_gclient_sync_third_party subprocess.check_output(cmd,cwd = os.path.dirname(gclient_filename))文件"/usr/lib/python2.7/subprocess.py",行566,在check_output进程中= Popen(stdout = PIPE,*popenargs,**kwargs)文件"/usr/lib/python2.7/subprocess.py",第710行,在init errread中,errwrite)文件"/ usr/lib /python2.7/subprocess.py",第1327行,在_execute_child中引发child_exception OSError:[Errno 2]没有这样的文件或目录
在132行,
File "src/build/configure.py", line 132, in _gclient_sync_third_party
subprocess.check_output(cmd, cwd=os.path.dirname(gclient_filename))
Run Code Online (Sandbox Code Playgroud)
gclient_filename是"third_party/.gclient",os.path.dirname(gclient_filename)是"thrid_party".
android chromium google-nativeclient ubuntu-14.04 google-chrome-arc
Microsoft的ActiveX和Google的Native Client都允许您构建在浏览器中执行本机编译代码的Web应用程序.除了它们在不同的浏览器和操作系统上运行之外,它们之间的技术差异是什么?
我意识到上面的问题相当广泛,所以我会缩小范围.我有一个简单的opengl c ++游戏引擎,它位于一个静态库中(可以转换为动态库).
我一直在想办法让它在网上运行.从我所看到的,我可以使用ActiveX或Google NaCl在浏览器中运行c ++代码.但这些技术似乎并不容易跨平台?或许我误解了.
我看到的另一个选择是将引擎转换为javascript和WebGL并在HTML5画布中运行.这会比c ++慢吗?但这将是非常跨平台的.
您认为最好的选择是什么,或者更好的是我还有其他选择吗?
编辑:类似于团结网络播放器的自定义插件怎么样?