Ejemplo n.º 1
0
        /// <summary>
        /// Открывает устройство и запоминает его Handle.
        /// </summary>
        /// <param name="aDeviceId">Идентификатор устройства.</param>
        /// <returns>Если != 0 то произошла ошибка.</returns>
        private int OpenDevice(int aDeviceId)
        {
            var format = new WAVEFORMATEX {
                WFormatTag = (short)WAVEFORMATTAG.WAVE_FORMAT_PCM,
                NChannels = (short)channelsCount,
                NSamplesPerSec = samplePerSec,
                NAvgBytesPerSec = samplePerSec * bytePerSample * channelsCount,
                WBitsPerSample = (short)(8 * bytePerSample),
                NBlockAlign = (short)(bytePerSample * channelsCount),
                CbSize = 0
            };

            return (int)NativeMethods.waveOutOpen(ref this.handle, (uint)aDeviceId, ref format, null, (IntPtr)0, 0);
        }
Ejemplo n.º 2
0
 public static extern uint waveOutOpen(ref IntPtr hWaveOut, uint uDeviceId, ref WAVEFORMATEX lpFormat,
     WaveOutProc dwCallback, IntPtr dwInstance, uint dwFlags);
Ejemplo n.º 3
0
        /// <summary>
        /// Получает handle для физического устройства.
        /// </summary>
        /// <param name="aDeviceId">Идентификатор устройства в системе.</param>
        /// <returns>Результат. Если != 0, значит ошибка.</returns>
        private int OpenDevice(int aDeviceId)
        {
            var format = new WAVEFORMATEX {
                WFormatTag = (short)WAVEFORMATTAG.WAVE_FORMAT_PCM,
                NChannels = (short)channelsCount,
                NSamplesPerSec = samplePerSec,
                NAvgBytesPerSec = samplePerSec * bytePerSample * channelsCount,
                NBlockAlign = (short)(bytePerSample * channelsCount),
                WBitsPerSample = (short)(8 * bytePerSample),
                CbSize = 0
            };

            return (int)NativeMethods.waveInOpen(ref handle, (uint)aDeviceId, ref format,
                IntPtr.Zero, 0, (uint)WAVEINOPENFLAGS.WAVE_FORMAT_DIRECT);
        }
Ejemplo n.º 4
0
 public static extern uint waveInOpen(ref IntPtr hWaveIn, uint deviceId, ref WAVEFORMATEX lpFormat, 
     IntPtr dwCallBack, uint dwInstance, uint dwFlags);