2014-07-06 2 views
0

node.js.와 비글 본에서 mplayer 용 웹 세트 컨트롤 래퍼를 만들려고합니다. 내 웹 소켓 서버의 엿볼이 아이크 같습니다node.js mplayer fifo control

io.sockets.on('connection', function (socket) 
{ 
    SaveToLog('Client ' + clientAddress + ' connected.'); 
    /* Function used to control the LEDs according to HTML file */ 

    allClients.push(socket); 

    socket.on('miro_server', function (device, command) 
    { 
     SaveToLog(device + ' ' + command); 

     switch (device) 
     { 
     case 'mplayerStatus': 
      if(command == 'PLAYSELECTED') 
      { 
       ls = childProcess.exec('mplayer -slave -quiet -input      file=/home/root/.mplayer/mplayer_fifo /home/root/agalloch.mp3', 
        function (error, stdout, stderr) 
        { 
         console.log('stdout: ' + stdout); 
         console.log('stderr: ' + stderr); 
         if (error !== null) 
         { 
          console.log('exec error: ' + error); 
         } 
        }); 

        ls.on('exit', function (code) 
        { 
         console.log('Child process exited with exit code '+code); 
        }); 
       } 
      else /* PAUSE */ 
      { 
       childProcess.exec('echo "pause" > /home/root/.mplayer/mplayer_fifo', 
        function (error, stdout, stderr) 
        { 
         console.log('stdout: ' + stdout); 
         console.log('stderr: ' + stderr); 
         if (error !== null) 
         { 
          console.log('exec error: ' + error); 
         } 
        }); 
      } 
      break; 
     } 

    }); 
}); 

MPlayer는 프로세스가 올바르게 시작하고 나는 스피커에서 음악을들을 수 있지만, 문제는 내가 선택한 FIFO를 통해 MPlayer는 과정에 어떤 명령을 보낼 수 없다는 것입니다 . 리눅스 터미널에서 같은 명령을 시도해도 잘 작동하므로 node.js 프로세스 exec 부분과 관련이 있다고 가정합니다.

저는 Linux 나 node.js에 대한 경험이별로 없으며 필자가 작성한 코드의 대부분은 코드 예제 및 튜토리얼을 기반으로합니다.

아무도 무슨 일이 일어나고 있는지, 왜 node.js를 사용하여 FIFO를 통해 재생 명령을 mplayer 프로세스에 보낼 수 없는지 설명 할 수 있습니까?

감사합니다.

답변

0

당신은 내가 RPI에이 시도하고 BBB하고 작동 echo 명령

'에코 "일시 중지"> /home/root/.mplayer/mplayer_fifo\n'

에 새로운 라인을 추가해야 여기에 정보 http://sonnycruz.blogspot.com