我正在通过 Cordova 用 JS(使用 p5.js 库)制作一个简单的应用程序,我希望它发送 OSC 中的推子位置,以便从我的智能手机控制舞台灯光(这是免费的应用程序 - 比如 Adam 的 OSC 控制器) Katz-运行良好,但没有足够的参数和灵活性供我使用)。
所以我创建了我的项目,毫无困难地制作了图形(使用 p5.js),但我坚持使用 OSC 插件部分: 我安装了这个插件:text 与科尔多瓦:
cordova plugin add cordova-plugin-osc
在我的项目目录中。
但是当我尝试使用此插件中的功能时(如示例中所述):
var port = 8000;
var osc = new OSC();
我从模拟设备检查器的控制台收到此错误:
Uncaught ReferenceError: OSC is not defined
at main.js:1
我首先尝试从 /www/ 目录中的插件复制 OSC.js 文件,并在我的 html 文件中提及它......但没有成功。
我验证了插件已经安装好(我也尝试安装在项目目录内,但项目内的 /www/ 目录下,但他告诉我插件已经安装了)。
我还尝试在代码开头要求它:
var OSC = require ('OSC');
但这似乎是一个nodejs函数,我可能不会在cordova中使用?
好吧,你可能会明白我对这一切有点迷失......
好的,明白了。
只是由于插件依赖cordova,所以必须等待设备准备好。因此,插件中的变量声明不能是“公共”的,它必须位于在“deviceReady”雕像之前不启动的函数中。
所以对我来说效果很好:
function oscFire(){ var osc = new OSC(); let SentValue = int(map(fader[CurrentFader], w/15*2, w-w/8, 0, 256)); osc.send({ remoteAddress: ip, remotePort: port, address: '/fader'+CurrentFader, arguments: [SentValue] }); }