O audio player de linha de comando que sai imediatamente após a reprodução do arquivo?

5
Estou experimentando com players de áudio na linha de comando, e notei algo estranho: se o som for muito curto, a maioria dos players levará um ou dois segundos após a reprodução terminar, antes de finalmente sair e retornar o controle. para o terminal!

ffplay parece executar um espectrograma quando iniciado com um arquivo de áudio e o conselho para consertar isso é:

<hypnocat> how can i turn off the spectrogram display?
<sacarasc_> Why would you want to?
<hypnocat> i don't want an extra window to appear, or for ffplay to waste extra processing power displaying it
<hypnocat> it's distracting, annoying, and wasteful
<sacarasc_> Minimise it, and if it's wasteful, your computer is either really, really old or you're overly sensitive to waste...
<hypnocat> my computer is old

... então eu não contaria isso como um jogador de linha de comando; mas eu tentei esses comandos no gnome-terminal do Ubuntu 11.04:

aplay --buffer-size=10 -q /usr/share/sounds/speech-dispatcher/test.wav
canberra-gtk-play -c never -f /usr/share/sounds/speech-dispatcher/test.wav
mplayer -really-quiet /usr/share/sounds/speech-dispatcher/test.wav
pacat -p --rate 16000 --channels 1 --latency-msec=1 --process-time-msec=2 /usr/share/sounds/speech-dispatcher/test.wav
play -q /usr/share/sounds/speech-dispatcher/test.wav  # with sox

O som speech-dispatcher/test.wav em si é de 0,542 segundos, mas esses programas reivindicam o terminal por cerca de um ou dois segundos (ou mais) depois que o arquivo termina de ser reproduzido. Por que isso acontece - e como eu poderia evitar isso? Se for impossível para esses aplicativos, existem players de áudio de linha de comando, que saem imediatamente após a finalização de um arquivo de áudio?

EDIT: para os interessados, é isso que eu precisava para Pergunta # 208391: Perguntas: pacote “xorg”: Ubuntu: Fazendo o evento X11 XBell tocar no PulseAudio ; e trabalhei em torno do problema do tempo de espera iniciando o player (nesse caso, canberra-gtk-play ) como um processo (com & ). Mas eu ainda gostaria de saber porque esse atraso de saída acontece em arquivos curtos? E como é que cvlc , conforme resposta @Anthon , pode por exemplo sair imediatamente ??     

por sdaau 11.05.2013 / 12:11

3 respostas

5

experimente isso para ffplay :

ffplay -autoexit -nodisp -loglevel panic /usr/share/sounds/speech-dispatcher/test.wav 
    
por 11.05.2013 / 12:32
4

Eu uso:

cvlc --no-one-instance --volume 150 <soundfile>

para reproduzir sons curtos (< 1 segundo) como notificadores das atividades do programa.

O --no-one-instance garante que essa reprodução não seja programada após algo que possa estar em execução em minha vlc 'normal' (como música) e que seja configurado para ter uma única instância e para o qual invocações adicionais (linha de comando, double clicando em), adicione os arquivos à lista de reprodução.

    
por 11.05.2013 / 12:28
2

O SoX funciona no Ubuntu (no repositório do universo do ubuntu), & foi instalado no live Linux Mint XFCE 16 disk. Pode reproduzir arquivos em um terminal, sem novas janelas ou qualquer coisa & sai imediatamente depois com:

play /this/file

Ele se autodenomina "SoX - Sound eXchange, o canivete suíço de manipulação de áudio" ... "particularmente adequado para fazer edições rápidas e simples e para processamento em lote" e é suposto ser capaz de fazer um monte de coisas, efeitos, combinar várias entradas, gravar em arquivos de saída. Aparentemente, existe desde 96 de acordo com o changelog.

Respondendo a uma pergunta antiga eu sei, mas eu estava apenas pesquisando como responder o problema exato (script de notificação de som para novo email) e o sox funciona perfeitamente, melhor que vlc / cvlc (demorou mais e mais soou um pouco diferente com um pequeno clique no final?).

    
por 08.01.2014 / 04:38