private unsafe void Load(byte[] data, ALFormat format, uint sampleRate, TimeSpan len) { AL.GenBuffers(1, out BufferHandle); lengthSeconds = (float)len.TotalSeconds; fixed(byte *dataPtr = &data[0]) { IntPtr dataIntPtr = new IntPtr(dataPtr); AL.BufferData(BufferHandle, format, dataIntPtr, data.Length, (int)sampleRate); } AL.GenSources(1, out SourceHandle); AL.Source(SourceHandle, ALSourcei.Buffer, (int)BufferHandle); AL.Source(SourceHandle, ALSourceb.Looping, false); }
public static unsafe uint BufferFromWav(byte[] wave) { uint result; AL.GenBuffers(1, out result); byte[] data; ALFormat format; uint sampleRate; LoadWav(wave, out data, out format, out sampleRate); fixed(byte *dataPtr = &data[0]) { IntPtr dataIntPtr = new IntPtr(dataPtr); AL.BufferData(result, format, dataIntPtr, data.Length, (int)sampleRate); } return(result); }
private unsafe static uint BufferFromOgg(VorbisReader vorbis) { uint result; AL.GenBuffers(1, out result); byte[] data; ALFormat format; uint sampleRate; TimeSpan len; LoadOgg(vorbis, out data, out format, out sampleRate, out len); fixed(byte *dataPtr = &data[0]) { IntPtr dataIntPtr = new IntPtr(dataPtr); AL.BufferData(result, format, dataIntPtr, data.Length, (int)sampleRate); } return(result); }