Control mplayer foi executado por xargs

0

Eu alimento o mplayer com a lista de arquivos de outro comando:

beet ls somequery -p | xargs -d '\n' mplayer

Quando invocado desta maneira, o mplayer não reage em nenhuma tecla padrão, tudo o que posso fazer é interromper o C-c.

  1. Por que isso acontece?
  2. Como fazer o mplayer se comportar (sem escrever código maior, sem loops, regexp ou vários canais)?
por pielgrzym 21.06.2012 / 09:00

1 resposta

0

Baseado em esta resposta que passa argumentos de find , eu criei o seguinte script:

$ beet ls QUERY | mplayer -playlist /dev/fd/3 3<&0 </dev/tty

Explicação rápida de como eu o entendo: mplayer é instruído a ler /dev/fd/3 como um arquivo de lista de reprodução. O descritor de arquivo 3 ( /dev/fd/3 ) é preenchido pela entrada padrão ( 3<&0 ) do comando beet . E a entrada para mplayer é especificada como o terminal de controle ( </dev/tty ). Como o mplayer está lendo de um arquivo e não stdin, você pode controlá-lo com o teclado.

Isso funciona para mim no Mac OS 10.8.3.

    
por 08.05.2013 / 04:19

Tags