Amazon 대시 버튼에서 버튼을 누르면 응답하는 Node.js 응용 프로그램과 함께 Raspberry Pi를 설정했습니다. 그것은 원래 https://github.com/initialstate/silent-doorbell에서 조용한 초인종으로되어 있었지만, 로컬 사운드 파일을 재생하고 싶습니다. 어느 정도는 쉬워야한다고 생각하지만, 코딩에 익숙하지 않아 인터넷을 통해 발견 할 수있는 새로운 것을 시도하고 있습니다.Node.js를 사용하여 RPi에서 로컬 파일 재생
나는 다음과 같이 터미널에서 파일을 재생할 수 있습니다 그것은 잘 재생 : 상관없이 나는 Node.js를 응용 프로그램 및 트리거에 넣어하려고 방법,
$ omxplayer example.mp3
을하지만 할 때 대시 버튼 누르면 작동하지 않습니다. 제안 메이저 버전이 사이트 http://thisdavej.com/upgrading-to-more-recent-versions-of-node-js-on-the-raspberry-pi/에 방향을 Upgrade를 사용 @Quentin에 의해 최신 버전으로 Node.js를 업그레이드 한 후
/home/pi/node_modules/node-dash-button/doorbell.js:7
let spawn = require('child_process').spawn;
^^^^^
SyntaxError: Unexpected identifier
at exports.runInThisContext (vm.js:73:16)
at Module._compile (module.js:443:25)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Function.Module.runMain (module.js:501:10)
at startup (node.js:129:16)
at node.js:814:3
: 위와 같이 내 최신 실행
var dash_button = require('node-dash-button'),
dash = dash_button('XX:XX:XX:XX:XX:XX'), //REPLACE WITH YOUR ADDRESS
exec = require('child_process').exec;
Omx = require('node-omxplayer');
player = Omx('~/node_modules/node-dash-button/example.mp3');
let spawn = require('child_process').spawn;
dash.on('detected', function() {
console.log('Button pushed!');
player.play();
});
,이 얻을 나는 이것을 지나갈 수 있었다. 이제는 omxplayer를 올바르게 사용하는 방법을 배울 수 없습니다.
[email protected]:~/node_modules/node-dash-button $ sudo node doorbell.js
Button pushed!
/home/pi/node_modules/node-omxplayer/index.js:103
throw new Error('Player is closed.');
^
Error: Player is closed.
at writeStdin (/home/pi/node_modules/node-omxplayer/index.js:103:10)
at EventEmitter.Omx.omxplayer.play (/home/pi/node_modules/node-omxplayer/index.js:133:27)
at Readable.<anonymous> (/home/pi/node_modules/node-dash-button/doorbell.js:13:12)
at emitOne (events.js:96:13)
at Readable.emit (events.js:188:7)
at PcapSession.<anonymous> (/home/pi/node_modules/node-dash-button/index.js:87:28)
at emitOne (events.js:96:13)
at PcapSession.emit (events.js:188:7)
at PcapSession.on_packet_ready (/home/pi/node_modules/node-dash-button/node_modules/pcap/pcap.js:99:10)
at packet_ready (/home/pi/node_modules/node-dash-button/node_modules/pcap/pcap.js:44:14)
내가 시도하고 플레이어를 얻을 수있는 몇 가지 다른 일을 시도 : 같은 코드를 실행하면 Node.js를 한 후 위와 같이하는 것은 지금 다음 응용 프로그램을 충돌 아마존 대시 버튼을 누른 후이 오류가 업그레이드 운이없는 산란. 참조 된 index.js 파일에서 player.running 명령을 사용하는 것에 대해 언급하고 있지만 사용하려고 시도 할 때 여전히 플레이어가 닫히는 오류가 발생합니다.
네, 그게 문제였습니다. 고마워요. 나는 라스베리 파이 (Raspberry Pi)에서 사용 가능한 최신 버전을 사용하고 있다고 생각했습니다. 약간의 연구 끝에 나는 그것을 강제해야한다는 것을 깨달았다. 그래서이 사이트 http://tisdavej.com/upgrading-to-more-recent-versions-of-node-js-on-the-raspberry-pi/를 사용하여 메이저 버전 업그레이드에서 나는 최신 버전을 얻을 수있었습니다. 번역. 그 후에 나는 재건해야했고 현재의 문제는 해결되었습니다. 이제 omxplayer가 "Error : Player is closed." – Erik