Desenvolvimento - Visual Basic .NET

Executando sons do sistema operacional no framework .NET 2.0

O .Net Framework 2.0 inclui uma série de classes para suporte a som, acabando assim como uma falha que era sentida por desenvolvedores do framework 1.x. Veja mais neste artigo.

por Cláudio Ralha



O .Net Framework 2.0 inclui uma série de classes para suporte a som, acabando assim como uma falha que era sentida por desenvolvedores do framework 1.x. Dentre os novos recursos, temos o namespace System.Media.SystemSounds que contém classes que nos permitem executar sons atribuídos a eventos sonoros do Windows. Através desse namespace, poderemos executar os sons atribuídos aos seguintes eventos sonoros:

  • Asterisk
  • Beep
  • Exclamation
  • Hand
  • Question

Para testar como é fácil utilizá-lo, crie uma nova aplicação do tipo Windows Application no Visual Studio 2005 ou no Visual Basic Express com o nome de ExemploSystemSounds.

No formulário windows que é fornecido como ponto de partida, inclua cinco botões conforme a figura a seguir:

Formulário de teste

O passo seguinte será alterar a propriedade Text dos mesmos para Asterisk,Beep,Exclamation, Hand e Question e a propriedade Name para btnAsterisk,btnBeep,btnExclamation, btnHand e btnQuestion respectivamente.

Feito isso, adicione o código a seguir aos botões:

Imports System.Media.SystemSounds

Public Class Form1

Private Sub btnAsterisk_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAsterisk.Click

Asterisk.Play()

End Sub

Private Sub btnBeep_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBeep.Click

Beep.Play()

End Sub

Private Sub btnExclamation_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExclamation.Click

Exclamation.Play()

End Sub

Private Sub btnHand_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHand.Click

Hand.Play()

End Sub

Private Sub btnQuestion_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnQuestion.Click

Question.Play()

End Sub

End Class

Para testar, tecle F5. Como você já deve ter percebido, mais fácil que isso, impossível!

Saiba que se um dos botões não executar som nenhum é sinal de que não há nenhum arquivo sonoro atribuído ao evento em questão. Para verificar, faça o seguinte:

  1. No menu Iniciar, clique em Painel de Controle.
  2. Na janela do Painel de Controle, dê um duplo clique sobre o ícone Sons e dispositivos de áudio.
  3. A caixa de diálogos Propriedades de som e dispositivos de áudio será exibida. Clique na guia Sons.

Nesta guia você poderá atribuir e investigar que sons estão associados aos eventos sonoros. Veja na figura a seguir, onde selecionamos o evento Asterisco (Asterisk):

Associando sons aos eventos sonoros

Note que há um ícone ao lado dos eventos que possuem som associado. Você poderá escutar o som atribuído clicando no botão Play existente a esquerda do botão Procurar.

Conclusão

Infelizmente, há vários eventos que não são cobertos pelo namespace SystemSounds, mas os mais importantes e usados são facilmente acessíveis através das classes disponíveis. Já é um bom começo, se pensarmos que antes tudo era feito via chamadas de API. Para conferir os detalhes de uso deste namespace, visite:

http://msdn2.microsoft.com/en-us/library/system.media.systemsounds_members.aspx

Agora que você já sabe como é fácil, não deixe de usar este recurso nos seus programas. Tenha em mente que embora seja simples de codificar, seu uso ajuda a criar uma atmosfera mais profissional para o software.

Abraços e até a próxima!

Cláudio Ralha

Cláudio Ralha - http://linhadecodigo.com.br/cs2/blogs/ClaudioRalha/default.aspx
Autor dos livros Dominando o Second Life e Segredos do Visual Studio.NET, profissional certificado Microsoft (MCP,MCAD,MCTS e MCPD) e palestrante Microsoft Brasil e Culminis. Já atuou como colunista do Informática etc do Jornal O GLOBO, editor da Revista Infomania e colaborador de várias revistas e sites. No mercado corporativo já desenvolveu para grandes clientes como Petrobras, Shell, Esso, Rede Globo, Furnas, Brascan, ONS, Unibanco e Bolsa de Valores pelas consultorias Accenture, Stefanini, Arcon, ATT/PS, Informaker, Relacional, Value Team e Softtek.