Dica r??pida para emitir um som com C# usando a API do Windows: basta importar a fun????o PlaySound. Crie a lista enumerada e importe a DLL utilizando os seguintes c??digos:
// FLAGS DE SOM
[System.Flags]
public enum PlaySoundFlags : int
{
SND_SYNC = 0x0000,
SND_ASYNC = 0x0001,
SND_NODEFAULT = 0x0002,
SND_LOOP = 0x0008,
SND_NOSTOP = 0x0010,
SND_NOWAIT = 0x00002000,
SND_FILENAME = 0x00020000,
SND_RESOURCE = 0x00040004
}
// IMPORTA????O DO COMPONENTE DE SOM
[DllImport(“winmm.dll”, EntryPoint = “PlaySound”, SetLastError = true, CharSet = CharSet.Unicode, ThrowOnUnmappableChar = true)]
private static extern bool PlaySound(string szSound, System.IntPtr hMod, PlaySoundFlags flags);
N??o precisa copiar a DLL para a aplica????o uma vez que ele busca na biblioteca do pr??prio Windows.
Para tocar, execute o m??todo (exemplo):
PlaySound(“sound.wav”, new System.IntPtr(), PlaySoundFlags.SND_ASYNC);
Sempre use a flag PlaySoundFlags.SND_ASYNC (forma ass??ncrona). ?? aconselh??vel usar ela do que PlaySoundFlags.SND_SYNC (forma s??ncrona) se estiver trabalhando com outro processamento em paralelo. Ou seja, ap??s o som, se for realizar algum outro m??todo ou trecho de c??digo. De forma ass??ncrona ele ir?? tocar e continuar com o processamento do c??digo que tiver logo abaixo (paralelo). De forma s??ncrona pode haver lentid??o no processo pois ?? vezes o som pode demorar a tocar ou ter que esperar terminar para prosseguir (cont??nuo). Fa??a os testes antes para ver o diferencial.
Agora sim! Volte ao post do Microterminal e adicione sua fun????o para tocar um som quando apertar * (asterisco).