Beep da placa mãe

14 respostas
R

Boa tarde colegas.

Bom eu estou procurando uma forma de emitir um beep da placa mãe sem ser por aquele comando Toolkit.getDefaultToolkit().beep() porque esse é muito baixo ou por System.out.print("\007") porque esse não funciona.
Não posso usar nenhuma manipulação de arquivos de som porque as máquinas não tem caixas de som.
Portando, o beep tem que ser direto pelos alto-falantes da placa mãe.

Alguém pode me ajudar???

14 Respostas

K

Pelo que me lembro minha biblioteca SAW-NativeUtils tem funções para usar o speaker/buzzer da placa mãe:

http://www.guj.com.br/posts/list/126146.java#811603

Siga as instruções de uso inclusas no tópico da bandeja de cd rom.

Inté.

C

rifoguit:
System.out.print("\007") porque esse não funciona.

Será que não é problema no PC que você está testando? o alto-falante tá ligado? Testou em outra máquina?

K

ctdaa:
rifoguit:
System.out.print("\007") porque esse não funciona.

Será que não é problema no PC que você está testando? o alto-falante tá ligado? Testou em outra máquina?

Eu tenho quase certeza que “System.out.print(”\007");" não funciona no “javaw.exe” e talvez não funcione numa vm java sem console no linux.

Inté.

T

Toolkit.beep chama o beep do Windows definido por MessageBeep (MB_OK); portanto, não use o método MessageBeep da API do Windows.

Em vez disso, use a API do Windows “Beep” ( http://msdn.microsoft.com/en-us/library/ms679277(VS.85).aspx ) - chame-a via JNA.

K

thingol:
Toolkit.beep chama o beep do Windows definido por MessageBeep (MB_OK); portanto, não use o método MessageBeep da API do Windows.

Em vez disso, use a API do Windows “Beep” ( http://msdn.microsoft.com/en-us/library/ms679277(VS.85).aspx ) - chame-a via JNA.

Os detalhes de uso do JNA para o beep já devem estar praticamente mastigados/abstraídos na minha biblioteca e se bem me lembro o usuário thingol já postou neste fórum uma implementação completa do uso da função Beep da api win32 com JNI.

Inté.

T

Puxa vida, nem me lembrava que tinha escrito isso ( http://www.guj.com.br/posts/list/51257.java ). Devo estar ouvindo menos ainda (no teste que havia feito, não conseguia distinguir mais de 7KHz; agora devo estar bem pior - se bem que um alto-falante de PC é realmente bem ruinzinho para reproduzir frequências altas e baixas.

R

Bom dia KWill,

A sua API não funfo não. :cry:
Testei em várias máquinas.
Ao amigo que postou sobre a API do Windows, quero lembrar aos senhores que o sistema roda em Linux Slackware 9 e 12. Portanto nem pansar em usar essa implementação.
Sobre a impressão do caracter “\007”, não funfo também. :cry:

K

rifoguit:
Bom dia KWill,

A sua API não funfo não. :cry:
Testei em várias máquinas.
Ao amigo que postou sobre a API do Windows, quero lembrar aos senhores que o sistema roda em Linux Slackware 9 e 12. Portanto nem pansar em usar essa implementação.
Sobre a impressão do caracter “\007”, não funfo também. :cry:

Tem que estar rodando como super-ultra-root no linux para o beep rodar, pelo menos em teoria, já que não tive a chance de testar o beep no unixes da vida, só fucei pacas nas documentações de ioctl das distribuições unixes que achei por aí.

Inté.

K

Lembrei de algo sobre os unixes da vida, algumas distribuições tem o programinha “beep” e sugiro tentar instalar/compilar esse programa e rodar ele como root para ver no que dá. Se não fizer barulho o speaker/buzzer pode estar desligado na BIOS ou a placa mãe pode nem ter ele…

Inté.

T

http://johnath.com/beep/beep-1.2.2.tar.gz

Atenção, só roda como root, já que tenta capturar o /dev/console.

Em particular, eu náo aconselharia forçar muito a barra.

Faça uma experiência: abra um console do Linux, e tente rodar algum comando que toque um bip no console.

http://blog.elcio.com.br/beep-no-console-do-linux-com-bash-e-printf/

Se você não ouvir nem esse bip, então você está com azar mesmo, porque a máquina tem problemas (já vi muitas máquinas em que o cara simplesmente nem conectou os fios do alto-falante à placa-mãe - sabe como é que é, incompetência não tem limites) e você não vai poder resolver isso só com software (é que o bip é o som mais forte que o alto-falante do computador pode tocar; se nem isso você conseguir ouvir, sinto muito.)

C

Hei… para windows tem um driver Sound to Speaker… para PC sem placa de som é uma boa.
http://support.microsoft.com/kb/138857

C

KWill:

Eu tenho quase certeza que “System.out.print(”\007");" não funciona no “javaw.exe” e talvez não funcione numa vm java sem console no linux.

Inté.

É… no javaw.exe o print("\007") não funciona mesmo… mas no java do linux não tem javaw… tem?

M

thingol:
http://johnath.com/beep/beep-1.2.2.tar.gz

Atenção, só roda como root, já que tenta capturar o /dev/console.

Em particular, eu náo aconselharia forçar muito a barra.

Faça uma experiência: abra um console do Linux, e tente rodar algum comando que toque um bip no console.

http://blog.elcio.com.br/beep-no-console-do-linux-com-bash-e-printf/

Se você não ouvir nem esse bip, então você está com azar mesmo, porque a máquina tem problemas (já vi muitas máquinas em que o cara simplesmente nem conectou os fios do alto-falante à placa-mãe - sabe como é que é, incompetência não tem limites) e você não vai poder resolver isso só com software (é que o bip é o som mais forte que o alto-falante do computador pode tocar; se nem isso você conseguir ouvir, sinto muito.)


Tem isso. Mas geralmente quando o micro inicia, a BIOS solta um “beep!”. Você ouve isso? Outra coisa: muitas distribuições, por padrão, (a exemplo do Ubuntu) não emitem um bipe pelo alto-falante da placa mãe se a placa de som estiver corretamente configurada. Mesmo que você digite um printf “\x07” ou echo -e ‘\a’ o som é emitido via caixas de som (ou ao menos ele tenta fazer isso).

T

Ou seja: sem caixinhas, um abraço. (A minha máquina no serviço é uma Lenovo que tem um arranjo interessante. Se não houver caixinhas ligadas à placa de som, ele redireciona para os alto-falantes internos.)

Criado 18 de janeiro de 2010
Ultima resposta 19 de jan. de 2010
Respostas 14
Participantes 5