在特定时间播放声音 - Winmm.dll - VB.Net
Play sound at specific time - Winmm.dll - VB.Net
我开始使用 winmm.dll 来播放声音(它提供了一次播放多个声音并设置音频参数的可能性)但是我找不到这个所有功能的有效列表图书馆 .
我有一个包含更多音乐的 Wav 文件,所以我必须单独启动它们。
我有这个代码:
Imports System.Text
Imports System.Runtime.InteropServices
Public class SoundPlayer
<DllImport("winmm.dll")> Private Shared Function mciSendString(ByVal command As String, ByVal buffer As StringBuilder, ByVal bufferSize As Integer, ByVal hwndCallback As IntPtr) As Integer
End Function
Public sub PlayMusicWithTime(SelectedTime as String)
mciSendString("open " & Chr(34) & Application.StartupPath & "\Resources\Sounds\" & soundFileName & Chr(34) & " type waveaudio alias MediaSound", Nothing, 0, IntPtr.Zero)
mciSendString("setaudio MediaSound volume to 1000", Nothing, 0, IntPtr.Zero)
' There should be a function here that make the sound start at the input value
mciSendString("play MediaSound", Nothing, 0, IntPtr.Zero)
End Sub
End Class
那么Winmm.dll中有没有在特定时间开始播放声音的功能?
终于找到解决办法了:
要在特定时间播放声音,我必须使用此代码:
mciSendString("从 13000 开始播放 MediaSound, Nothing, 0, IntPtr.Zero)
在这种情况下我从13秒开始玩
--------------- ------------------------- ------------------------- ------------------------- ------------------------- ----------
完整代码:
Imports System.Text
Imports System.Runtime.InteropServices
Public class SoundPlayer
<DllImport("winmm.dll")> Private Shared Function mciSendString(ByVal command As String, ByVal buffer As StringBuilder, ByVal bufferSize As Integer, ByVal hwndCallback As IntPtr) As Integer
End Function
Public sub PlayMusicWithTime(SelectedTime as Integer)
mciSendString("open Sound1.wav type waveaudio alias MediaSound", Nothing, 0, IntPtr.Zero)
mciSendString("setaudio MediaSound volume to 1000", Nothing, 0, IntPtr.Zero)
mciSendString("play MediaSound from " & SelectedTime.toString, Nothing, 0, IntPtr.Zero)
End Sub
End Class
我开始使用 winmm.dll 来播放声音(它提供了一次播放多个声音并设置音频参数的可能性)但是我找不到这个所有功能的有效列表图书馆 .
我有一个包含更多音乐的 Wav 文件,所以我必须单独启动它们。
我有这个代码:
Imports System.Text
Imports System.Runtime.InteropServices
Public class SoundPlayer
<DllImport("winmm.dll")> Private Shared Function mciSendString(ByVal command As String, ByVal buffer As StringBuilder, ByVal bufferSize As Integer, ByVal hwndCallback As IntPtr) As Integer
End Function
Public sub PlayMusicWithTime(SelectedTime as String)
mciSendString("open " & Chr(34) & Application.StartupPath & "\Resources\Sounds\" & soundFileName & Chr(34) & " type waveaudio alias MediaSound", Nothing, 0, IntPtr.Zero)
mciSendString("setaudio MediaSound volume to 1000", Nothing, 0, IntPtr.Zero)
' There should be a function here that make the sound start at the input value
mciSendString("play MediaSound", Nothing, 0, IntPtr.Zero)
End Sub
End Class
那么Winmm.dll中有没有在特定时间开始播放声音的功能?
终于找到解决办法了:
要在特定时间播放声音,我必须使用此代码:
mciSendString("从 13000 开始播放 MediaSound, Nothing, 0, IntPtr.Zero)
在这种情况下我从13秒开始玩
--------------- ------------------------- ------------------------- ------------------------- ------------------------- ----------
完整代码:
Imports System.Text
Imports System.Runtime.InteropServices
Public class SoundPlayer
<DllImport("winmm.dll")> Private Shared Function mciSendString(ByVal command As String, ByVal buffer As StringBuilder, ByVal bufferSize As Integer, ByVal hwndCallback As IntPtr) As Integer
End Function
Public sub PlayMusicWithTime(SelectedTime as Integer)
mciSendString("open Sound1.wav type waveaudio alias MediaSound", Nothing, 0, IntPtr.Zero)
mciSendString("setaudio MediaSound volume to 1000", Nothing, 0, IntPtr.Zero)
mciSendString("play MediaSound from " & SelectedTime.toString, Nothing, 0, IntPtr.Zero)
End Sub
End Class