【问题标题】:node.js mplayer fifo controlnode.js mplayer fifo 控制
【发布时间】:2014-07-20 09:04:48
【问题描述】:

我正在尝试使用 node.js 在 beaglebone 上为 mplayer 创建一个 webscket 控件包装器。 我的 websocket 服务器一瞥看起来像这样:

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 进程发送任何命令。 当我在 linux 终端中尝试相同的命令时,它工作得很好,所以我认为它与 node.js 进程执行部分有关。

我对 linux 或 node.js 没有太多经验,我写的大部分代码都是基于代码示例和教程。

谁能解释发生了什么以及为什么我不能使用 node.js 通过 fifo 向 mplayer 进程发送播放命令?

谢谢。

【问题讨论】:

    标签: linux node.js beagleboneblack mplayer


    【解决方案1】:

    您需要在 echo 命令中添加新行

    'echo "pause" > /home/root/.mplayer/mplayer_fifo\n'

    我在 rpi 和 bbb 上试过这个,它在这里工作信息http://sonnycruz.blogspot.com

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-27
      • 1970-01-01
      • 2016-08-08
      • 1970-01-01
      相关资源
      最近更新 更多