좋아요, 어쩌면 어리석은 질문 일 겁니다. 여기와 Google에서 검색을 시도했지만 아무 것도 실제로 대답하지 않는 것 같습니다. 현재 상황에 대해 충분히 구체적이지 않으므로 (톤이 있습니다. 내가 아는 JS 이벤트에 대한 정보도 있고, 나는 정말로 어리석은 질문이 없다고 들었다.NodeJS에서 맞춤 이벤트를 잡는 방법
특정 빈도에 도달 할 때마다 NodeJS에서 사용자 지정 이벤트를 내보내려고합니다. 그래서 제가 노래를 연주 할 때, 그것은 80dB을 넘었고, 나는 이벤트를 내고 싶습니다.
웹 브라우저에서이 이벤트를 어떻게 잡아낼 수 있습니까? 내가 아는 서버를 발사해야 할 것 같습니다. 그러나 내 서버에서 이벤트를 보내려면 어떻게해야합니까? 더 중요한 것은 어떻게 클라이언트 측에서 이러한 이벤트를 잡을 수 있습니까?
(A 프레임을 사용하고 멋진 오디오 비주얼을 만들 수 있도록)
이것은 현재 나의 서버에서는 아무것도하지 않지만 현재 (Ableton에서) 분석 한 오디오는 작동합니다.
'use strict';
let Max4Node = require('max4node');
let EventEmitter = require("events").EventEmitter;
let ee = new EventEmitter();
// Server
let http = require('http');
let handleRequest = (request, response) => {
response.end(`It works! ${request.url}`);
}
let server = http.createServer(handleRequest);
const PORT=8080;
server.listen(PORT, function(){
console.log(`Server listening on: http://localhost:${PORT}`);
});
let max = new Max4Node();
max.bind();
// Event listeners
ee.on('kick', (data) => {
console.log(`kick ${data}`);
});
ee.on('clap', (data) => {
console.log(`clap ${data}`);
});
ee.on('hat', (data) => {
console.log(`hat ${data}`);
});
// Observe the low-pass filtered track
max.observe({
path: 'live_set tracks 0',
property: 'output_meter_level'
})
.on('value', function(val) {
val > 0.8 ? ee.emit('kick', val) : null;
});
// Observe the high-pass filtered track
max.observe({
path: 'live_set tracks 3',
property: 'output_meter_level'
})
.on('value', (val) => {
val > 0.8 && val < 0.9 ? ee.emit('clap', val) : null;
val > 0.9 ? ee.emit('hat', val) : null;
});
누군가이 상황을 해결하는 방법에 대한 더 나은 통찰력을 줄 수 있기를 바랍니다. 피드백/팁을 환영합니다!
emit 이벤트 대신 console.log를 사용하면 output/console에 아무 것도 없나요? –
그것은 똑같은 일을하고, 내 문제도 아닙니다. 내 현재 이벤트 리스너는 이미 데시벨의 현재 값으로 콘솔에 로깅하고 있으므로 내 관찰자 내부의 이벤트 이미 터를 바꿔 넣는 것은 똑같습니다. 내 문제는 서버를 통해 이벤트를 보내고 클라이언트 쪽을 잡아 내고 싶다는 것입니다. –
** socket.io ** - http://socket.io/docs/ –