우선 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");
}






Posted by bloodguy
,