Exemplo n.º 1
0
        public void PlayFromMemory(IntPtr ptr, int count)
        {
            WinMM.WAVEHDR waveHeader = new WinMM.WAVEHDR()
            {
                Data = ptr,
                BufferLength = (uint)count,
                BytesRecorded = 0,
                User = IntPtr.Zero,
                Flags = (WinMM.WaveHdrFlags)0,
                Loops = 0,
                Next = IntPtr.Zero,
                Reserved = IntPtr.Zero
            };

            IntPtr ptrWaveHeader = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(WinMM.WAVEHDR)));

            Marshal.StructureToPtr(waveHeader, ptrWaveHeader, true);

            WinMM.waveOutPrepareHeader(ptrWaveOut, ptrWaveHeader, Marshal.SizeOf(typeof(WinMM.WAVEHDR)));

            WinMM.waveOutWrite(ptrWaveOut, ptrWaveHeader, Marshal.SizeOf(typeof(WinMM.WAVEHDR)));

            Marshal.DestroyStructure(ptrWaveHeader, typeof(WinMM.WAVEHDR));
        }
Exemplo n.º 2
0
        public void PlayFromMemory(IntPtr ptr, int count)
        {
            WinMM.WAVEHDR waveHeader = new WinMM.WAVEHDR()
            {
                Data          = ptr,
                BufferLength  = (uint)count,
                BytesRecorded = 0,
                User          = IntPtr.Zero,
                Flags         = (WinMM.WaveHdrFlags) 0,
                Loops         = 0,
                Next          = IntPtr.Zero,
                Reserved      = IntPtr.Zero
            };

            IntPtr ptrWaveHeader = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(WinMM.WAVEHDR)));

            Marshal.StructureToPtr(waveHeader, ptrWaveHeader, true);

            WinMM.waveOutPrepareHeader(ptrWaveOut, ptrWaveHeader, Marshal.SizeOf(typeof(WinMM.WAVEHDR)));

            WinMM.waveOutWrite(ptrWaveOut, ptrWaveHeader, Marshal.SizeOf(typeof(WinMM.WAVEHDR)));

            Marshal.DestroyStructure(ptrWaveHeader, typeof(WinMM.WAVEHDR));
        }