gpt4 book ai didi

vb.net - mciSendString/winmm.dll-播放音频文件

转载 作者:行者123 更新时间:2023-12-03 00:18:54 28 4
gpt4 key购买 nike

我正在使用Visual Basic 2008开发一个程序,要求具有不同音量的不同类型的声音。因此,My.Computer.Audio.Play不是有效的选项。

我决定改用mciSendString并发现以下代码

Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" _
(ByVal lpstrCommand As String, ByVal lpstrReturnString As String, _
ByVal uReturnLength As Integer, ByVal hwndCallback As Integer) As Integer

mciSendString("close myWAV", Nothing, 0, 0)
Dim fileName1 As String =
mciSendString("open " & fileName1 & " type mpegvideo alias myWAV", Nothing, 0, 0)
mciSendString("play myWAV", Nothing, 0, 0)

'min Volume is 1, max Volume is 1000
Dim Volume As Integer = (SFXVolume * 100)
mciSendString("setaudio myWAV volume to " & Volume, Nothing, 0, 0)

现在,我测试了这段代码,当filename1 =“C://Correct.wav”时,它可以正常工作

但是当我使用

filename1 = My.Application.Info.DirectoryPath和“\ Correct.wav”

我没有声音播放。

谁能帮助我更正我的代码,以便此工作。
先感谢您。

最佳答案

如果您的DirectoryPath带有空格,则mciSendString将无法准确识别该命令,您需要在路径两边加上引号:

mciSendString(
String.Format("open ""{0}"" type mpegvideo alias myWAV", fileName1), Nothing, 0, 0)

一定要像汉斯建议的那样检查返回的状态。

另外,由于您不知道 DirectoryPath是否带有反斜杠,因此从目录和名称生成完整路径的准确方法是:
fileName1 = System.IO.Path.Combine(My.Application.Info.DirectoryPath, "Correct.wav")

关于vb.net - mciSendString/winmm.dll-播放音频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16649299/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com