Como posso tocar uma música em segundo plano através da minha linha de comando?

13

Eu instalei play:

sudo apt-get install sox libsox-fmt-mp3

Agora posso reproduzir meus arquivos de áudio assim:

play Desktop/SONGS/01\ -\ Oh\ Baby\ Girl.mp3

Desde que estou aprendendo shell, eu gostaria de poder fazer algo assim:

 (sleep 10 ; play Desktop/SONGS/01\ -\ Oh\ Baby\ Girl.mp3 ) &

Após os 10segundos, posso ver a tela como:

 File Size: 7.38M     Bit Rate: 260k
  Encoding: MPEG audio    Info: 2012
  Channels: 2 @ 16-bit   Track: 01/09
Samplerate: 44100Hz      Album: Maalai Pozhudhin Mayakathilaey :::tunesinn.blogspot.com:::
Replaygain: off         Artist: Hemachandra, Achu
  Duration: 00:03:46.98  Title: Oh Baby Girl

Mas a música não está tocando. Mas se eu fizer isso (sem &):

(sleep 10 ; play Desktop/SONGS/01\ -\ Oh\ Baby\ Girl.mp3 ) 

Está funcionando como esperado. Mas não consegui usar meu terminal enquanto isso.

Como eu poderia resolver meu problema usando &?

Formigas
fonte
5
Se você deseja apenas um player CLI para poder reproduzir áudio em segundo plano, eu recomendo que você tente cmus. Ele ainda possui um script cmuscrobblerpara last.fm e você pode mapear teclas de atalho globais no sistema X window via cmus-remote. Ou você pode tentar usar um utilitário como screen.
jeremija
cmusé um ótimo programa - eu devo expandir esse comentário em uma resposta completa!

Respostas:

13

O background playcom &falha ocorre porque playdeseja gerar seu status, por exemplo

In:12.7% 00:00:27.31 [00:03:07.52] Out:1.20M [!=====|=====!] Hd:0.0 Clip:0  

mas não pode se estiver em segundo plano. Por isso, continua esperando até ser abortado.

Para resolver isso, basta executar playcom o -qinterruptor (silencioso). Isso fará sucesso com o plano de fundo e playserá encerrado quando a música terminar.

(sleep 10; play -q Desktop / SONGS / 01 \ - \ Oh \ Baby \ Girl.mp3) e

Você pode interrompê-lo digitando killall play(se nenhuma outra instância de execução estiver em execução) ou kill $!(se você não tiver outros processos em segundo plano no mesmo terminal após o início da execução - $! Fornece o PID do último processo em segundo plano)

ish
fonte
Isso funciona. Mas como é que agora eu paro de tocar a música?
de Ant
2
Você pode pará-lo, digitando killall play(se nenhum outro jogo instâncias estão em execução), ou por kill $!(se você não tiver segundo plano outros processos no mesmo terminal após o início do jogo - $!dá-lhe a PID do último processo backgrounded)
ish
3

existe uma maneira melhor de executar as coisas em "segundo plano" na linha de comando.

sudo apt-get install screen

É um dos programas de linha de comando mais bacanas para linux. Ele permite que você tenha algo semelhante a "abas em um navegador" e alterne perfeitamente entre elas, sem interromper os programas em execução. Porém, não abas no próprio programa do terminal. Mas dentro desse shell específico você começou.

Depois de instalar, inicie-o digitando

screen 

em um terminal.

você cria novas "guias" com ctrl-A c você alterna para a próxima guia com ctrl-A n

Aqui está um tutorial mais completo, se você achar as páginas de manual difíceis de entender

tomodachi
fonte
0

Minhas ações Nautilus para adicionar "Play" e "Stop" ao menu de contexto para arquivos de áudio

Para adicionar reprodução ...

Defina uma nova ação da seguinte maneira

"Guia Ação"

  1. Caixa de seleção marcada para "Exibir item no menu de contexto de seleção"
  2. Nova etiqueta de contexto de ação = Reproduzir
  3. Dica = Reproduzir áudio
  4. Ícone = início da reprodução da mídia

"Guia Comando"

  1. Label = Play
  2. Caminho = / usr / bin / play -q
  3. Parâmetros =% f
  4. (Opcional W / Effects) Parâmetros =% f rate -v vol .25 graves +5 agudos +5 reverb
  5. Diretório de trabalho =% d

"Guia Execução"

  1. Caixa de seleção marcada para "Normal"

"Guia Mimetypes"

  1. Adicionar áudio / mpeg
  2. Adicionar áudio / flac
  3. Adicionar áudio / x-wav

Ou adicione mais, se necessário, ou deixe-o em branco para aparecer em todos os lugares.

O resto pode ser deixado em paz.


Para adicionar parada ...

Defina uma nova ação da seguinte maneira

"Guia Ação"

  1. Caixa de seleção marcada para "Exibir item no menu de contexto de seleção"
  2. Rótulo de Contexto = Parar
  3. Dica = Parar áudio
  4. Ícone = parada de reprodução de mídia

"Guia Comando"

  1. Label = Stop
  2. Caminho = killall
  3. Parâmetros = reproduzir
  4. Diretório de trabalho =% d

"Guia Execução"

  1. Caixa de seleção marcada para "Normal"

"Guia Mimetypes"

  1. Adicionar áudio / mpeg
  2. Adicionar áudio / flac
  3. Adicionar áudio / x-wav

Ou adicione mais, se necessário, ou deixe-o em branco para aparecer em todos os lugares.

O resto pode ser deixado em paz.

excluído
fonte
Ajuste conforme necessário. Brinque com as opções de efeitos, consulte a página de manual do sox para saber mais sobre isso ... manpages.ubuntu.com/manpages/raring/en/man1/sox.1.html
excluído
2
Como isso responde à pergunta sobre como executar isso na linha de comando ? Sua resposta parece ser sobre o Nautilus, um gerenciador de arquivos habilitado para GUI. É uma boa resposta, mas para uma pergunta diferente.
gertvdijk
Porque é uma maneira rápida e legal de fazer isso, mesmo que não seja uma resposta da linha de comando. Não foi possível encontrar uma pergunta para ajustar a resposta neste caso.
excluído
0

eu uso

cvlc --play-and-exit "$filename" &>/dev/null &

O vlc é bastante onipresente.

Glenn Jackman
fonte
0

Existem muitos players no mercado. Você pode tentar o código-fonte aberto, que é de código-fonte aberto e multiplataforma. É mplayer. Tente este comando para verificar se está lá ou não.

mplayer --help 
man mplayer

Você verá o manual ou a documentação deste comando. Você pode reproduzir o arquivo de áudio. Verifique seus drivers. Você deve ter drivers antes de usá-lo. Caso contrário, instale-o com o comando apt no Ubuntu 16.04 LTS ou o comando apt-get.

sudo apt install mplayer

ou

sudo apt-get install mplayer

use-o simplesmente digitando mplayer e nome do arquivo depois disso.

mplayer file_path
Hafiz Shehbaz Ali
fonte
0

Isso funcionou para mim com o mplayer

nohup mplayer  SomeSong.mp4 > /dev/null 2>&1 &
brandon
fonte