【发布时间】:2021-01-16 23:25:22
【问题描述】:
我尝试了几种方法。一个是 SoundPlayer,但据我了解,一次只能播放一种声音,我需要背景音乐循环播放。我还使用 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 就好了,但我会做需要的事情
【问题讨论】:
-
我强烈建议使用
NAudio。它是一个开源库,可以通过 NuGet 轻松安装。无需 P/Invoke。支持同时播放声音。 -
刚安装,不知道怎么用。查找文档,但有什么诀窍吗?
-
谷歌搜索“NAudio 教程”返回了许多有用的结果(甚至是两个视频)。只需按照教程(如果您最终使用它,请关闭此问题)
-
它非常易于使用。我会看一下“如何”部分here,他们已经包含了演示。但这里有一些特定于looping audio
-
我现在正在循环播放。谢谢你。我遇到的另一个问题是我无法在播放一次后再次播放声音