2013-05-24 3 views
4

MP3를 반복하는 방법은 무엇입니까?MP3를 반복하는 방법은 무엇입니까?

MP3를 재생할 때이 방법을 사용하지만 한 번 재생됩니다.

MP3를 계속 재생하고 싶습니다.

/*jslint node: true, vars: true, maxerr: 50, indent: 4 */ 
(function (console, require, alarm) { 
    "use strict"; 

    var fs = require("fs"); 
    var lame = require("lame"); 
    var Speaker = require("speaker"); 

    function start() { 
     var stream = fs.createReadStream("sounds/alarm.mp3"); 
     stream.pipe(new lame.Decoder()).pipe(new Speaker()); 
    } 

    alarm.start = start; 
}(global.console, require, exports)); 

사용 :

+0

연구 내용을 문서화하십시오. 절름발이에 대한 노드 설명서에서 아무것도 찾을 수 없습니까? 스피커? – djechlin

+0

나는 그것을 할 올바른 방법이 무엇인지 잘 모릅니다. 나는'stream.on ("close", function() {start();});을 시도했으나 효과가 없었다. 그것은 동시에 여러 MP3 파일을 재생하기 시작했다. – XP1

+0

나는 Decoder와 Speaker 인스턴스를 변수에 저장하고 그 줄을'stream.pipe (decoder, {end : false}). pipe (speaker, {end : false});'로 수정하려고 시도했다. 이로 인해 노드가 모든 메모리를 먹은 다음 충돌합니다 : "치명적인 오류 : 대피 할당 실패 - 메모리 부족 처리". – XP1

답변

2

기다립니다.

var speaker = new Speaker(); 
speaker.on('finish', start); 
stream.pipe(new lame.Decoder()).pipe(speaker); 
+0

'start'의 두 번째 줄을 세 줄로 바꿨지 만 한 번만 재생됩니다. "완료"이벤트가 발생하지 않는 것 같습니다. Windows 8에서 node-lame 1.0.2, node-speaker 0.0.10 및 Node 0.10.8을 사용하고 있습니다. – XP1

관련 문제