我的项目:
我想创建一个简单的网页(仅在我的本地计算机上运行 - 不连接到互联网),当您按下客户端的按钮时,运行运行dejavu的python脚本,并返回这首歌的标题。然后我想使用歌曲标题来改变处理脚本中的变量,该脚本将根据歌曲显示不同的可视化。
到目前为止,我有一个工作的python脚本(testPython.py),它将识别一首歌曲,并将标题作为字符串返回:
from dejavu import Dejavu
from dejavu.recognize import MicrophoneRecognizer
main():
config = {
"database": {
"host": "127.0.0.1",
"user": "root",
"passwd": "Password",
"db": "dejavu",
}
}
djv = Dejavu(config)
song = djv.recognize(MicrophoneRecognizer, seconds=10)
return song.get("song_name") #this is a string
我有html + AJAX脚本,可以调用python函数并根据它调整HTML元素,以及带有处理脚本的canvas元素
$('button').click(function(){
$.ajax({
url: "testPython.py",
success: function(response) {
$("#test").css("color", "red");
}
});
});
.
.
.
<canvas data-processing-sources="testProcessing.pde"></canvas>
我有一个处理脚本(基于变量的输出变化没有实现,但它不应该复杂)
void setup(){
...
}
void draw(){
...
}
如何将这些全部放在一起,因此python / dejavu的结果会影响处理脚本的输出?
(我也知道这很麻烦;除了python和html之外,我对这里的所有内容都很陌生,而且我高估了项目的复杂性)
答案 0 :(得分:1)
请参阅the Processing.js JavaScript Quick Start Guide的撰写处理和JavaScript代码的文档部分。
该指南精确解释了如何混合Processing.js和JavaScript。
具体来说,您有两个选择:让您的Processing.js代码调用JavaScript函数和变量,或让您的JavaScript代码调用处理函数。
最后它被转换为JavaScript,所以它们都是一样的。
另外,请养成将问题分解成小块的习惯。你说你已经让Python部分工作了,所以现在把它的其余部分隔离在一个更简单的例子中,该例子使用你希望在Processing中获得的JavaScript中的硬编码变量。尝试将一个小例子(最好是在JSFiddle或CodePen上)放在一起,如果你遇到问题就发布一个链接(在一个新问题中)。祝你好运。