public override Buffer CreateResource(ResourceManager resourceManager) { var buffer = base.CreateResource(resourceManager); using (var reader = new BinaryReader(OpenResource(FileName))) { RiffHeader header; RiffReader.ReadHeader(reader, out header); var format = header.GetFormat(); var sampleData = new byte[header.DataLength]; var bytesRead = reader.Read(sampleData, 0, sampleData.Length); if (bytesRead < sampleData.Length) { throw new InvalidOperationException("Unable to read audio data. Sound WAV file may be corrupted or truncated."); } AL.BufferData(buffer.Id, format, sampleData, sampleData.Length, (int)header.SampleRate); } return(buffer); }