우선 mp3 재생에 사용할 mpg123을 설치.
apt-get install mpg123
설치된 mpg123을 -R 옵션을 주고 자식 프로세스로 실행한 후 stdin/stdout을 통해 명령을 입력하고 결과를 받는 형태로 통신.
실제로 커맨드라인에서 mpg123 -R 로 실행해서 help 쳐보고 이런저런 명령어를 실행해보면 감이 올 것임.
'use strict';
const child_process = require('child_process');
// 자식 프로세스 생성
let mpg123 = child_process.spawn('mpg123', ['-R']);
// stdout에 빨대꽂기
mpg123.stdout.on('data', function(buf){
// stdout 출력내용을 라인별로 분리한 다음 에러메세지만 추출
// 실제로 모듈로 만들어 사용할 땐 여기에서 onError 같은 걸 emit 하면 되겠지
buf.toString().split("\n").forEach(function(line){
if (line.indexOf('@E') === 0) {
console.log('에러: '+line.substr(2).trim());
}
});
});
// mp3 재생
function play(soundFile)
{
mpg123.stdin.write('LOAD '+soundFile+"\n");
}
'node.js' 카테고리의 다른 글
[node.js] self-signed certificate (0) | 2017.12.11 |
---|---|
[node.js] FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory 에러 원인, 해결방법 (2) | 2017.05.19 |
[node.js] 인터넷 연결상태 체크 (check internet connectivity) (0) | 2016.01.13 |
[node.js] http + cluster 구성시 worker graceful restart (no downtime) (0) | 2015.11.19 |
[node.js] async 모듈을 이용한 비동기 처리 패턴 (0) | 2014.01.21 |