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.
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.
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.
A sua API não funfo não.
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.
A sua API não funfo não.
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. [/quote]
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í.
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…
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.)
[quote=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é.[/quote]
É… no javaw.exe o print("\007") não funciona mesmo… mas no java do linux não tem javaw… tem?
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.)
[/quote]
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).
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.)