c# SoundPlayer 声音不能重叠?

来源:百度知道 编辑:UC知道 时间:2024/05/25 04:59:13
在c#项目中引入了System.Media.SoundPlayer
怎样才能在一个程序中同时播放多个声音文件呢?

知道的留个名
http://weiweisoft.cn/replay.aspx?qID=10104 回答
谢谢了......
---------------------------------------------------------
回答者:jixianfeng6 :用线程试试看
----------------------------
实验结果: 失败

---------------------------------------------------------
回答者:孔繁岐 :没有办法实现
----------------------------
不是吧? 这么悲惨吗>?

---------------------------------------------------------
回答者:moneyin :****
----------------------------
要用System.Media.SoundPlayer来实现啊~~
------------------------------------------------------------------------------
回答者: xx_lzj
-----------------------------
我不知道怎么用啊,直接放到类下面, [DllImport("winmm.dll")]:
错误1找不到类型或命名空间名称“DllImport”(是否缺少 using 指令或程序集引用?)
怎么办? 要导入什么还是相关配置? 可以的话把你的项目文件发给我吧~~ningwei486

用SoundPlayer据说只能播放wav文件。
再简单点的,用WindowsMediaPlayer,
还可以用MCI,通过API直接传递给MCI设备一个播放命令,
还可以用DirectX等,控制稍微复杂,更强。
我用MCI,可以同时播放两个文件,给你代码参考:
[DllImport("winmm.dll")]
public static extern int mciSendString(string m_strCmd, string m_strReceive, int m_v1, int m_v2);

[DllImport("Kernel32", CharSet = CharSet.Auto)]
static extern Int32 GetShortPathName(String path,StringBuilder shortPath, Int32 shortPathLength);

private static void playMusic(string name)
{
StringBuilder shortpath = new StringBuilder(80);
int result = GetShortPathName(name, shortpath, shortpath.Capacity);
name = shortpath.ToString();
string buf = string.Empty;

mciSendString("play "+name,buf, buf.Length, 0); //播放
}
private void button1_Click(object sender, EventArgs e)