none
vb.net使用DirectSound播放音频错误 RRS feed

  • 问题

  • 源代码如下:

    Imports Microsoft.DirectX
    Imports Microsoft.DirectX.DirectSound

    Public Class Form1
        Inherits Windows.Forms.Form
        Dim dev As Device
        Dim sb As SecondaryBuffer
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            dev = New Device
            dev.SetCooperativeLevel(Me, CooperativeLevel.Normal)
            sb = New SecondaryBuffer("D:\Track 1.wav", dev)
            sb.Play(0, BufferPlayFlags.Looping)
        End Sub
    End Class

    运行后标记

     sb = New SecondaryBuffer("D:\Track 1.wav", dev)   错误

    错误提示:

    未处理SecondException

    请问什么原因呢?怎么解决呢?

    使用的是vb.net 2008 + Microsoft DirectX SDK (March 2008)

    2008年7月27日 10:34

答案

  •  

    MDX 是指 托管 DirectX

    是微软为了方便.NET 开发游戏而 制作的, 对DirectX的包装

     

     

    实际上,我也不知道,

    可能是没有在网这方面发展吧, 所以

    有很长时间 没有接触了

     

     

    你可以先看看我那个代码, 那个程序, 是调试成功后才发布的,

    里面有一个背景音乐, 是WAV的,

    你可以看看那个程序是怎么做的

     

    另外, 那个异常, 说的可能很模糊

    你在查查,异常里面那个异常 看看(innterE。。。。)

    或许有更相信息

    2008年8月1日 15:16

全部回复

  • 会不会是文件名有空格的原因?

    2008年7月27日 14:15
    版主
  •  

    不是这个问题哦~去掉空格也不行的~
    2008年7月27日 14:48
  • 试一试把"D:\Track 1.wav"改成"D:\\Track 1.wav"
    2008年7月29日 5:31
  •  

    还是不行~郁闷咯,同样的错误
    2008年7月29日 7:02
  • MDX 在开发到2.0 Beta 刚出来的时候,就终止开发了

    由NXA替代了,楼主可以看一下XNA

     

    一下是我以前 转的MSDN WebCast上一个 MDX 游戏开发的 程序 一段(原版是C#的), 使用的构造函数好像不同。

     

     

      ''' <param name="fileName">指定声音文件</param>
        Sub New(ByVal fileName As String)
            Dim desc As BufferDescription = New BufferDescription
            desc.StaticBuffer = True
            Dim fullpath As String = My.Computer.FileSystem.CombinePath(Game.SoundPath, fileName)
            m_SecondaryBuffer = New SecondaryBuffer(fullpath, desc, Game.DSoundDevice)

        End Sub

     

    全部源代码我已经放到这里了~ (虽然很久没有更新了~)

    http://www.codeplex.com/StarTrooperVB

    2008年7月29日 7:10
  •  

    先谢过~但我听不懂这么专业的术语~但是我只想知道怎么改我的代码才能运行~
    2008年8月1日 13:55
  •  

    MDX 是指 托管 DirectX

    是微软为了方便.NET 开发游戏而 制作的, 对DirectX的包装

     

     

    实际上,我也不知道,

    可能是没有在网这方面发展吧, 所以

    有很长时间 没有接触了

     

     

    你可以先看看我那个代码, 那个程序, 是调试成功后才发布的,

    里面有一个背景音乐, 是WAV的,

    你可以看看那个程序是怎么做的

     

    另外, 那个异常, 说的可能很模糊

    你在查查,异常里面那个异常 看看(innterE。。。。)

    或许有更相信息

    2008年8月1日 15:16