在OpenAL中加载声音问题

时间:2011-08-12 19:22:25

标签: openal tao

我在使用OpenAL加载声音时遇到问题:

// in SoundManager.cs
public void LoadSound(string soundId, string path)
        {
            // Generate a buffer.
            int buffer = -1;
            Al.alGenBuffers(1, out buffer);
            int errorCode = Al.alGetError();
            System.Diagnostics.Debug.Assert(errorCode == Al.AL_NO_ERROR);
            int format;
            float frequency;
            int size;
            System.Diagnostics.Debug.Assert(File.Exists(path));
            IntPtr data = Alut.alutLoadMemoryFromFile(path, out format, out size,
            out frequency);
            System.Diagnostics.Debug.Assert(data != IntPtr.Zero, "Problem");
            // Load wav data into the generated buffer.
            Al.alBufferData(buffer, format, data, size, (int)frequency);
            // Everything seems ok, add it to the library.
            _soundIdentifier.Add(soundId, new SoundSource(buffer, path));
        }

// Form.cs
 private void InitializeSounds()
        {            
            _soundManager.LoadSound("effect", "soundA.wav");            
        }
  1. soundIdentifier是一个字典,在SoundSource中我保留声音的信息,第一个字符串是声音的正常名称,如“cow”,“horse”或其他。

  2. 我从Form.cs调用InitializeSounds,而LoadSound是声音管理器的方法。

  3. Alut.alutLoadMemoryFromFile导致错误,由于某种原因返回空指针。

  4. 其余的是简单的代码,希望你能理解。

  5. 我使用Tao.OpenAL在c#中工作。

1 个答案:

答案 0 :(得分:0)

您需要重新安装open al。去这里重新安装。

http://connect.creativelabs.com/openal/Downloads/Forms/AllItems.aspx