node.js로 간단한 MP3 플레이어를 만들고, 크론잡을 이용해서 특정 시간에 음악이 재생되도록 해보자.

작업환경

작업은 내가 맥북을 쓰는 관계로 OSX 기준으로 설명을 하겠다. 리눅스에서도 동작이 될 것으로 보인다. 윈도우즈에서는 별도의 환경설정이 필요한 데 이는 아래 부분에 설명을 달아 놨다.

MP3 Player

MP3 플레이를 하기 위해 mp3 디코딩 모듈 lame과 PCM 오디오 데이타를 스피커로
출력해 주는 speaker 모듈이 필요하다.

먼저 두개의 node 모듈을 설치하자.

$ mkdir mp3player && cd $_
$ npm init
$ npm insall lame --save
$ npm insall speaker --save

다음은 이 모듈을 사용해서 명령어 인자로 지정한 mp3 파일을 읽어서 재생하는
MP3 플레이어 소스다. 정말 간단하지 않은가?! app.js로 저장하다.

var fs = require('fs');
var lame = require('lame');
var Speaker = require('speaker');
 
fs.createReadStream(process.argv[2])
  .pipe(new lame.Decoder())
  .on('format', function (format) {
    this.pipe(new Speaker(format));
  });

이제 플레이어를 만들었으니깐 실제 돌려보자.

node app.js test.mp3

짜잔. 스피커로 음악이 나오면 끝.

cronjob 설정

플레이어를 만들었으니깐 정해진 시간에 음악이 재생되도록 해보자.
crontab을 사용한다.

$ crontab -e

15 18 * * * /usr/local/bin/node /Users/yhbyun/work/node.js/mp3player/app.js /Users/yhbyun/work/node.js/mp3player/paldo.mp3

내 맥북에서는 매일 저녁 6시15분이면 팔도사나이가 울려 퍼진다. 비록
그 때 퇴근하지는 않지만...

크론잡 설정으로 간단한 알람시계도 만들 수 있을듯 하다.

windows 환경

windows 환경에서는 lame, speaker 모듈 설치시 컴파일을 위한 환경을 따로 준비를 해야 한다. 다음의 절차를 따른다.

python이 설치되어 있지 않으면 python 2.7.6을 설치한다. 설치한 다음 시스템 환경변수 PATH에 c:\python2.7 추가한다.

node-gyp을 위한 visual studio 2010 설치 문서 대로 visual studio 2010과 SDK, 그리고 서비스 팩을 설치한다.

Reference