标签: node-webkit

node webkit语音识别API

我正在尝试使用节点webkit语音识别API,但它给了我一个奇怪的行为.我这样初始化录音机:

var rec = new webkitSpeechRecognition();
rec.continuous = true;
rec.interimResults = true;
rec.onresult = function(e){ alert('result') };
rec.onstart = function(e){ alert('start') };
rec.onerror = function(e){ console.log(e); };
rec.onend  = function(e){ alert('end') };
rec.onspeechstart = function(e){ alert('speechStart') };
rec.start();
Run Code Online (Sandbox Code Playgroud)

但是start()电话后没有任何事 唯一有效的插槽是end(),我无法弄清楚这个有用而不是其他的......我失去了什么?

我浏览这个Github问题(桌面应用的webkitSpeechRecognition?)但没有找到任何有用的信息.

speech-recognition node-webkit

5
推荐指数
1
解决办法
2366
查看次数

Node-Webkit在不同的窗口中启动功能

我的node-webkit应用程序包含一个控制窗口和一个演示窗口.

控制窗口收集数据并最终通过该window.open功能启动演示窗口.

现在,演示窗口可以访问global变量中的一些信息.

现在我想通过创建SVG元素等来呈现该信息的图形表示.

我已经有一个javascript函数来完成这个,但我需要一些从控制窗口启动该函数的方法.

我不能直接调用它,因为那时函数必须访问其他窗口的DOM.

我已经尝试eval在其他窗口的对象上使用该函数,但是该消息使node-webkit崩溃

[18719:0522/205047:ERROR:breakpad_linux.cc(1225)] crash dump file written to 
/tmp/chromium-renderer-minidump-788bf8d0c68301d5.dmp
Run Code Online (Sandbox Code Playgroud)

最好的方法是什么?

使用setInterval要定期检查一个全局变量?

javascript node.js node-webkit

5
推荐指数
1
解决办法
1271
查看次数

如何让我的node-webkit应用程序正确打开?

我正在设置我的第一个node-webkit应用程序,我遇到了启动它的问题.我在Mac上,应用程序文件结构与下面相同.

Folder
 index.html
 package.json
Run Code Online (Sandbox Code Playgroud)

的package.json

{
  "name": "Test App",
  "main": "index.html",
  "window": {
    "toolbar": true,
    "width": 800,
    "height": 600
  }
}
Run Code Online (Sandbox Code Playgroud)

然后我在终端中运行'zip data*'来压缩应用程序并将zip文件重命名为'app.nw'.

当我将nw文件或原始文件夹拖到node-webkit上时,它无法正确打开我的应用程序,而是显示默认屏幕.

在此输入图像描述

node.js node-webkit

5
推荐指数
1
解决办法
4711
查看次数

将Web Audio API麦克风数据流式传输到nodewebkit上的磁盘

我正在开发一个nodewebkit应用程序,该应用程序使用Web Audio API记录麦克风数据并将其保存到磁盘.

我已经使用了RecordRTC框架,但是随着录制的进行,它没有提供将数据流式传输到磁盘的方法(考虑到录制时间可能超过一小时,这是必要的).

我似乎无法找到使用其他方法将数据流式传输到磁盘的好方法.如果有一个正确的方法来做到这一点,我会很感激有关正确的工具是什么的提示.

但是,我现在的非工作解决方案是:

  1. 使用WebAudio API创建ScriptProcessorNode以访问PCM数据
  2. 创建一个可读的流缓冲区(使用流缓冲区模块)并将其传递给fileWriter(使用wav模块创建)
  3. 在onaudioprocess事件中将该数据转换为16位整数,并将它们添加到可读流中,以便可以编写它们

这没有用,因为ReadableStreamBuffer一次只向fileWriter传输20个字节,而不是因为某些原因而排队来自麦克风的所有字节.

var wav = require('wav');
var streamBuffers = require("stream-buffers");

function convertFloat32ToInt16(buffer) {
  var l = buffer.length;
  var buf = new Int16Array(l);
  while (l--) {
    buf[l] = Math.min(1, buffer[l])*0x7FFF;
  }
  return buf.buffer;
}

var filePath = utils.getCwd() + '/recordings/demo.wav';
var fileWriter = new wav.FileWriter( filePath, {
  channels: 1,
  sampleRate: 48000,
  bitDepth: 16
});

var myReadableStreamBuffer = new streamBuffers.ReadableStreamBuffer({
    frequency:  0,        // in milliseconds.
    chunkSize: 2048        // in bytes.
});

myReadableStreamBuffer.pipe(fileWriter);

source.connect(scriptNode); …
Run Code Online (Sandbox Code Playgroud)

stream wav node.js node-webkit web-audio-api

5
推荐指数
0
解决办法
531
查看次数

如何使用node-webkit中的webpack将节点模块与本机插件捆绑在一起?

我正在尝试构建pty.js以便在node-webkit(即nw.js)v0.8.6中使用:

mkdir testapp && cd testapp
nvm use 0.10.36
npm install -g nw-gyp
npm install pty.js
cd node_modules/pty.js

# Build the native addon for node-webkit v0.8.6:
nw-gyp configure --target=0.8.6 && nw-gyp build
Run Code Online (Sandbox Code Playgroud)

输出结束gyp info ok.

使用简单的app.jsindex.html,应用程序在JavaScript控制台中启动时没有错误:

<!-- index.html -->

<!DOCTYPE html>
<html>
  <head>
    <title>Hello World!</title>
  </head>
  <body>
    <h1>Hello World!</h1>
    <script src="app.js"></script>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)
// app.js

var pty = require('pty.js');

var term = pty.spawn('bash', [], {
  name: …
Run Code Online (Sandbox Code Playgroud)

node.js node-webkit webpack

5
推荐指数
1
解决办法
2054
查看次数

在node-webkit startup(nw.js)上运行python脚本

我有一个基于Python的应用程序来控制LED.它用于Flask创建一个Web服务器,因此我可以使用HTML,CSS和JS来处理一个很好的UI.

我目前的流程:

  1. python home.py
  2. 导航到localhost:5000浏览器
  3. 利润!

我想进一步将它打包成一个nw.js(以前的node-webkit)应用程序.

基本上,我相信我只需要在窗口加载之前执行我的python脚本,这样我可靠的烧瓶Web服务器就会启动并创建一个localhost:5000页面供我的nw.js应用程序界面打开.

如何打包我的nw.js应用程序,以便它在启动时运行python脚本?

python desktop-application node-webkit nw.js

5
推荐指数
1
解决办法
3006
查看次数

Node JS - 读取文件属性

我正在使用NWJS开发桌面应用程序,我需要获取.exe文件的文件属性.

我已经尝试使用npm属性模块https://github.com/gagle/node-properties,但我得到一个空的Object.

properties.parse('./unzipped/File.exe', { path: true }, function (err, obj) {
            if (err) {
                console.log(err);
            }

            console.log(obj);
        });
Run Code Online (Sandbox Code Playgroud)

我需要获取"文件版本"属性:

文件属性

我也试过使用fs.stats而没有运气.有任何想法吗?

file-properties node.js node-webkit

5
推荐指数
1
解决办法
4157
查看次数

如何遍历所有文件,并支持暂停和继续

我创建了一个NodeJS(电子)代码,用于读取特定目录和子目录中的所有文件.我不想使用太多的高清资源,这就是为什么我在文件夹之间使用5ms的延迟.

现在我的问题.我希望我的NODE过程停止吗?我希望能够在停止时继续.我该怎么办?

换句话说:如何在所有文件和文件夹中行走时保持当前状态的索引,这样我就可以从停止时继续遍历.

谢谢

我的代码:

var walkAll=function(options){
    var x=0
    walk(options.dir,function(){})
    function walk(dir,callback) {
      var files=fs.readdirSync(dir);
      var stat;
      async.eachSeries(files,function(file,next){
        file=dir +'/' + file
        if (dir.match(/Recycle/)) return next() 
        if (dir.match(/.git/)) return next() 
        if (dir.match(/node_modules/)) return next() 
        fs.lstat(file,function(err,stat){
            if(err) return next()
            if(stat.mode==41398) return next()
            if (stat.isDirectory()) {
                setTimeout(function(file){
                    walk(file,next)
                }.bind(null,file),5)
            }
            else{
                x++
                if(false || x % 1000===0) console.log((new Date().valueOf()-start)/1000,x,file)
                next()
            }
        })
      },function(){
        callback()
      })
    }
}

walkAll({
    dir:'c:/',
    delay:1000
});
Run Code Online (Sandbox Code Playgroud)

node.js node-webkit electron

5
推荐指数
1
解决办法
253
查看次数

缺少符号的问题 - 不推荐使用NewInstance.仅在与nw.js一起运行时

在我的项目中,我使用了libvirt库.这些是libvirtapi的节点绑定.由于这个问题可能与其他绑定案件有关,我在这里发表我的问题.在使用npm install安装时会抛出警告(下面​​以一个为例)

../src/domain.cc: In static member function ‘static v8::Local<v8::Object> NLV::Domain::NewInstance(virDomainPtr)’:
../src/domain.cc:197:44: warning: ‘v8::Local<v8::Object> v8::Function::NewInstance() const’ is deprecated (declared at /home/mark/.node-gyp/6.3.1/include/node/v8.h:3243): Use maybe version [-Wdeprecated-declarations]
   Local<Object> object = ctor->NewInstance();
                                            ^
Run Code Online (Sandbox Code Playgroud)

与普通节点应用程序一起使用时,后来不会出现任何问题.但是,当nw.js涉及到它时,由于NewInstance的使用,它会完全崩溃.有证据见:

....nwjs/nw: symbol lookup error: ..../project/node_modules/libvirt/
build/Release/libvirt.node: 
undefined symbol: _ZN2v816FunctionTemplate3NewEPNS_7IsolateEPFvRKNS_20FunctionCallbackInfoINS_5ValueEEEENS_5LocalIS4_EENSA_INS_9SignatureEEEi
    Aborted (core dumped)
Run Code Online (Sandbox Code Playgroud)

有问题的这个符号引用相同的方法 - NewInstance.

有问题的代码,纯粹的形式如下所示:

Domain::Domain(virDomainPtr handle) : NLVObject(handle) {}
Local<Object> Domain::NewInstance(virDomainPtr handle)
{
  Nan::EscapableHandleScope scope;
  Local<Function> ctor = Nan::New<Function>(constructor);
  Local<Object> object = ctor->NewInstance();
...
Run Code Online (Sandbox Code Playgroud)

由于我对这些V8问题的熟练程度很高,也许有人可以告诉我要改变什么以及如何使其发挥作用.

v8 node.js node-webkit

5
推荐指数
0
解决办法
428
查看次数

如何在NW.js中运行Chrome扩展程序?

这个问题非常简短且不言自明.我想知道如何在NW.js中运行我的Chrome扩展程序.

我知道你可以在NW.js中运行一个应用程序,我认为你也可以运行扩展程序吗?

关于这个话题我找不到多少.早在2013年,这样做的方式似乎是:

nw [path to manifest.json] --load-extension
Run Code Online (Sandbox Code Playgroud)

任何想法都表示赞赏!

google-chrome-extension google-chrome-app node-webkit nw.js nwjs

5
推荐指数
1
解决办法
1754
查看次数