我尝试了几种方法。一个是SoundPlayer,但根据我的理解,一次只能播放1个声音,我需要背景音乐循环播放。我也使用winmm.dll尝试播放循环播放的音乐,但它似乎并不适合我。此外,我似乎不止一次播放声音。这是我试过的
[DllImport("winmm.dll")]
private static extern long mciSendString(string strCommand, StringBuilder strReturn, int iReturnLength, IntPtr hwndCallback);
mciSendString(@"open C:\\Users\\jberry\\Documents\\Pics\\MusicLoop2.wav type waveaudio alias applause", null, 0, IntPtr.Zero);
mciSendString(@"play applause", null, 0, IntPtr.Zero);
这样可行,但只播放一次。我看过很多帖子说要做这样的事情
mciSendString(@"open C:\\Users\\jberry\\Documents\\Pics\\MusicLoop2.wav type waveaudio alias applause", null, 0, IntPtr.Zero);
mciSendString(@"play applause repeat", null, 0, IntPtr.Zero);
但那甚至不会发挥任何作用。任何人都可以帮我找到一种快速播放多种声音+重复歌曲循环的方法吗?如果我不必安装任何不错的DLL,但我会做什么
答案 0 :(得分:0)
当原始帖子提到让声音播放一次但尝试循环时没有声音时,代码确实没有任何问题。问题出在 mciSendString
- 它无法循环 wav 文件。如果您需要循环播放声音,请使用 mp3 文件。
额外提示:我没有使用字符串命令 mciSendString
,而是使用本 link 中的文章提供的 c#/vb.net 包装器。
这是我如何使用包装器:
Dim myPlayer = New MciPlayer("resources\TimerAlert.mp3", "myAlias")
myPlayer.PlayLoop()
myPlayer.StopPlaying()