#linux #node.js #beagleboneblack #mplayer
#linux #node.js #beagleboneblack #mplayer
Вопрос:
Я пытаюсь создать оболочку управления webscet для mplayer на beaglebone с node.js . Мой сервер 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 запускается корректно, и я слышу музыку из динамиков, но проблема в том, что я не могу отправить какие-либо команды процессу mplayer через выбранный fifo.
Когда я пробую те же команды в терминале Linux, это работает просто отлично, поэтому я предполагаю, что это как-то связано с node.js часть выполнения процесса.
У меня нет большого опыта работы с Linux или node.js и большая часть кода, который я написал, основана на примерах кода и руководствах.
Кто-нибудь может объяснить, что происходит и почему я не могу отправить команду воспроизведения через fifo процессу mplayer с помощью node.js ?
Спасибо.
Ответ №1:
вам нужно добавить новую строку в команду echo
‘echo «pause» > /home/root/.mplayer/mplayer_fifon’
Я попробовал это на rpi и bbb, и это работает, информация здесьhttp://sonnycruz.blogspot.com