【问题标题】:How to play a wave file using SlimDX.DirectSound?如何使用 SlimDX.DirectSound 播放波形文件?
【发布时间】:2015-04-27 17:55:24
【问题描述】:
public partial class Form1 : Form
{
    SecondarySoundBuffer m_DSoundBuffer;
    DirectSound m_DirectSound;
    string fileName = @"F:\\guitar-classical-E-octave0.wav";
    public void setting()
    {
        WaveStream waveFile = new WaveStream(fileName);
        SoundBufferDescription desc = new SoundBufferDescription();
        desc.SizeInBytes = (int)waveFile.Length;
        desc.Flags = BufferFlags.None;
        desc.Format = waveFile.Format;
        m_DirectSound = new DirectSound();
        m_DirectSound.SetCooperativeLevel(this.Handle, CooperativeLevel.Priority);
        m_DSoundBuffer = new SecondarySoundBuffer(m_DirectSound, desc);
    }
    public Form1()
    {
        InitializeComponent(); 
    }
    private void button1_Click(object sender, EventArgs e)
    {
        setting();
        m_DSoundBuffer.Play(0, 0);
    }


}

我是 SlimDX 的第一人。

我正在尝试播放波形文件。但它不起作用!

可能有什么问题??

使用 WinForms、SlimDX.DirectSound、SlimDX.Mutimedia

【问题讨论】:

  • DirectSound 很古老。你应该使用 XAudio2,你可以使用 SlimDX。

标签: c#-4.0 directx slimdx managed-directx


【解决方案1】:

我做到了。

缓冲区必须写!!

public void setting()
    {
        m_DirectSound = new DirectSound();
        m_DirectSound.SetCooperativeLevel(this.Handle, CooperativeLevel.Priority);
        m_DirectSound.IsDefaultPool = false;

        using (WaveStream waveFile = new WaveStream(fileName))
        {

            SoundBufferDescription desc = new SoundBufferDescription();
            desc.SizeInBytes = (int)waveFile.Length;
            desc.Flags = BufferFlags.None;
            desc.Format = waveFile.Format;

            m_DSoundBuffer = new SecondarySoundBuffer(m_DirectSound, desc);
            byte[] data = new byte[desc.SizeInBytes];
            waveFile.Read(data, 0, (int)waveFile.Length);
            m_DSoundBuffer.Write(data, 0, LockFlags.None);
        }

【讨论】:

    猜你喜欢
    • 2015-10-06
    • 1970-01-01
    • 1970-01-01
    • 2013-06-25
    • 2013-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多