Fazendo o alto-falante do PC emitir um bipe

Fazendo o alto-falante do PC emitir um bipe

Muito foi escrito sobre como obter o som do bipe dos lançamentos do Ubuntu ao longo dos anos. Exemplo:consertando o bipe

Minhas necessidades são um pouco diferentes porque não quero garantir que os bipes da placa de som estejam funcionando. Em vez disso, quero bipes do alto-falante do PC, do tipo produzido pelo alto-falante embutido original, porque acredito que eles produzirão menos carga da CPU. Confirmei que meu computador possui alto-falante desconectando os alto-falantes externos e desligando o Ubuntu. Em algum momento do processo de desligamento e reinicialização, um bipe é ouvido mesmo que os alto-falantes externos não tenham energia.

Eu tentei o seguinte:

Em /etc/modprobe.d/blacklist.conf, transforme estas linhas em comentários:

#blacklist snd_pcsp
#blacklist pcspkr

Em.bashrc

/usr/bin/xset b on
/usr/bin/xset b 100

Habilite no terminal gnome: Editar > Preferências de perfil > Geral > Terminal Bell

Certifique-se de que não haja seleções de "silenciar" em: Sistema > Preferências > Som > várias guias (desmarque todas elas).

Selecione "Ativar sons de janelas e botões" em: Sistema > Prefs > Som > Efeitos sonoros

Em gconf-editordesktop > gnome > sound, marque as três caixas de seleção de som.

Em gconf-editoraplicativos > metacity > geral marque a audible bellcaixa de seleção.

Ainda não recebo nenhum sinal sonoro do alto-falante do PC quando envio o código 7 para o console por meio do meu programa Java ou uso

echo -e '\a'

ou equivalente

echo -e "\a"

na linha de comando do bash. (A opção -e significa ativar a interpretação da sequência de escape.) O que mais devo tentar?

AtualizarComo meu objetivo é minimizar a carga da CPU, aqui está uma comparação dos tempos decorridos. Cada teste é para 100.000 iterações. Cada variante foi realizada três vezes, portanto três resultados são apresentados para cada uma.

printwriter.format("%c", 7); 
// 1.3 seconds, 1.5 seconds, 1.5 seconds

Toolkit.getDefaultToolkit().beep(); 
// 0.8 seconds, 0.3 seconds, 0.5 seconds

try { Runtime.getRuntime().exec("beep"); } catch (IOException e) { } 
// 10.3 seconds, 16.3 seconds, 11.4 seconds

Essas execuções foram feitas dentro do Eclipse, então multiplique por algum valor menor que 1 para execução independente. Infelizmente, o bipe do Toolkit é silencioso no meu computador, assim como o código 7. O utilitário de bipe funciona, mas tem o maior custo.

Responder1

No meu sistema Oneiric, tive que fazer o seguinte para que o XBell/XkbBell funcionasse novamente:

  1. Carregue o módulo pcspkr(como você já fez via /etc/modprobe.d/blacklist.conf)
  2. Remova o pacote pulseaudio-module-x11(que parece absorver todos os eventos XBell)
  3. Coloque options snd-hda-intel beep_mode=2em /etc/modprobe.d/enable-beep.conf(você só precisa caso possua um sistema com chip de som Intel como o meu Latitude E6420). Ative o som do alto-falante no alsamixer depois disso.

Alguns terminais (como o konsole, veja o bugErro 177861) ignore o caractere da campainha. Uma boa maneira de testar o bipe do sistema é com o xkbbellcomando.

Depois de fazer tudo isso, a chamada java Toolkit.getDefaultToolkit().beep()funciona perfeitamente.

Responder2

Em 14.04.3 LTS agora parece suficiente editar /etc/modprobe.d/blacklist.confe ativar pcspkrcomentando a linha da lista negra.

#blacklist pcspkr

Isso #transforma a linha em um comentário.

Certifique-se de que o Terminal ( gnome-terminal) permita a campainha do console na guia de preferências.

Isso foi testado via backspace em uma linha de terminal vazia. Isso também foi testado por meio do beeputilitário (supondo que você o tenha instalado). Em vez disso, você pode emitir bipes programáticos por meio do objeto java.awt.Toolkit: java.awt.Toolkit.getDefaultToolkit().beep().

O objeto Toolkit é mais eficiente que o beeputilitário.

Por falar nisso,algumas pessoas não gostam do alto-falante do PC.

Responder3

Certificar-seseu terminal e tema não comem o evento.

Ferramentas externastrabalho, você diz. Você poderia mergulhar no código deles.Essepode ajudar.

Responder4

Use obeepprograma. Compilei a v1.3, pois a 1.2.2 nos repositórios Lucid não funciona.

  • você precisa executá-lo comsudo
  • o módulo pcspkr deve ser carregado, como vocês fizeram

informação relacionada