Sempre um som pop sempre que o alsa / pulseaudio estiver ocioso por exatamente 5 segundos?

3

Estou tocando efeitos sonoros curtos usando aplay sempre que os usuários interagem com a interface.

O que eu noto é que eu posso tocar qualquer um dos sons em qualquer ordem e desde que dois sons sejam tocados em 5 segundos um do outro, a transição é clara, mas uma diferença de mais de 5 segundos e há um pop horrível !

Note que todos os meus arquivos de som são < 1 segundo de duração.

O que eu fiz para hackar isso é criar um arquivo silence.wav com 5 segundos de taxa de amostragem baixa que faz um loop em um script .sh (que definitivamente não é uma solução de longo prazo):

Brute forçando com o silêncio:

#!/bin/bash
while [ 1 ] ; do
 aplay sounds/blank.wav
done

O estouro agora é muito raro, se é que acontece.

Então, o que eu não consigo descobrir é por que diabos algo está mudando nesses 5 segundos para causar o pop? Como posso configurar o meu áudio para permanecer em um estado em que ele não vai aparecer quando um som é reproduzido depois de um longo atraso?

Eu experimentei o /etc/pulse/default.pa e o /etc/pulse/daemon.config, mas não progredimos.

Note que estou usando um pi de framboesa de núcleo único, mas se a força bruta com o silêncio ajuda, então ainda há esperança ??

[ATUALIZAÇÃO]

Eu me deparei com uma maneira um pouco mais elegante de usar continuamente o silêncio forçado para os dispositivos:

aplay /dev/zero

Playing raw data '/dev/zero' : Unsigned 8 bit, Rate 8000 Hz, Mono

Mas, por algum motivo, ele produz um tom de alta frequência. Existe uma maneira semelhante de fazer isso?

[ATUALIZAÇÃO]

aplay -r 8000 -f S16_LE /dev/zero

Isso faz o truque, com alguma sobrecarga de executar um thread constantemente para manter as coisas abertas. Mas caso contrário, o áudio é muito limpo agora.

    
por Logic1 02.09.2018 / 20:19

0 respostas

Tags