vb中怎么播放wav文件?
有没有什么比较好的播放函数?
请赐教

解决方案 »

  1.   

    在  工程->引用->window media player
      

  2.   

    用API就可以播放了
    mciexecute这个api就可以
    不过要注意文件名里不能有空格
    所以你还要用getshortname这个api来设置文件名
      

  3.   

    用WindowsMediaPlayer控件
    Dim MFile As String
    CommonDialog1.ShowOpen
    MFile = CommonDialog1.FileName
    MediaPlayer1.FileName = MFile
    MediaPlayer1.AutoStart = True
    MediaPlayer1.AutoSize = True
      

  4.   

    microsoft multimedia control6.0
    '   初始化,设定MMC控件的必要属性
        Private Sub Form_Load()
         MMControl1
                .Notify = False '决定下一条 MCI 命令是否使用 MCI 通知服务
                .Wait = True '决定 Multimedia MCI 控件是否要等到下一条 MCI 命令完成,才能将控件返回应用程序
                .Shareable = False '决定多个程序能否共享同一台 MCI 设备
            End With
        End Sub'   打开音频文件
        Private Sub open_Click(Index As Integer)
            Dim typ As String
            CommonDialog1.Filter = "Mid文件(*.mid)|*.mid|Wav文件(*.wav)|*.wav"
            CommonDialog1.ShowOpen
            If CommonDialog1.FileName <> "" Then
                MMControl1.FileName = CommonDialog1.FileName
                typ = Right(CommonDialog1.FileName, 3)
                '   根据打开不同的文件,设定不同的设备
                Select Case LCase(typ)
                    Case "mid"
                    MMControl1.DeviceType = "Sequencer"
                    Case "wav"
                    MMControl1.DeviceType = "Waveaudio"
                End Select
                '   打开设备
                MMControl1.Command = "Open"
                MMControl1.UpdateInterval = 500 ' 规定两次连续的 StatusUpdate 事件之间间隔500毫秒
            End If
        End Sub
      

  5.   

    使用api
    ' To Play a Wave File'BY S.Raghunathan
    'DeclarationsPrivate Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" _(ByVal lpszSoundName As String, ByVal uFlags As Long) As LongDim fileName as String
    'CodingsSub PlayWave()fileName = "C:\Windows\Media\MicrosoftSound.Wav"
    sndPlaySound fileName,0
    End Sub()
      

  6.   

    我觉得还是用API比较好。
    如果控件多了,加载速度慢,EXE文件大等缺点。
      

  7.   

    楼上的说得是,如果控件多了,加载速度慢,EXE文件大。Public Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As LongSub PlayMyWav(PathWavName As String)
    sndPlaySound PathWavName, &H1
    End Sub