发布网友 发布时间:2024-10-21 18:18
共3个回答
热心网友 时间:2024-10-21 19:06
使用相对路径 只查找EXE 的目录
热心网友 时间:2024-10-21 19:00
将声音文件作为资源嵌入,然后你参考以下代码就知道了namespace WaveCall
{
using System;
using System.IO;
using System.Media;
using System.Runtime.CompilerServices; public static class WaveCallSound
{
private static SoundPlayer 按键音0 = new SoundPlayer(获取程序集嵌入资源流("WaveCallSound.Wave.0.wav"));
private static SoundPlayer 按键音1;
private static SoundPlayer 按键音2;
private static SoundPlayer 按键音3;
private static SoundPlayer 按键音4;
private static SoundPlayer 按键音5;
private static SoundPlayer 按键音6;
private static SoundPlayer 按键音7;
private static SoundPlayer 按键音8;
private static SoundPlayer 按键音9;
private static SoundPlayer 按键音井号;
private static SoundPlayer 按键音星号; static WaveCallSound()
{
按键音0.LoadAsync();
按键音1 = new SoundPlayer(获取程序集嵌入资源流("WaveCallSound.Wave.1.wav"));
按键音1.LoadAsync();
按键音2 = new SoundPlayer(获取程序集嵌入资源流("WaveCallSound.Wave.2.wav"));
按键音2.LoadAsync();
按键音3 = new SoundPlayer(获取程序集嵌入资源流("WaveCallSound.Wave.3.wav"));
按键音3.LoadAsync();
按键音4 = new SoundPlayer(获取程序集嵌入资源流("WaveCallSound.Wave.4.wav"));
按键音4.LoadAsync();
按键音5 = new SoundPlayer(获取程序集嵌入资源流("WaveCallSound.Wave.5.wav"));
按键音5.LoadAsync();
按键音6 = new SoundPlayer(获取程序集嵌入资源流("WaveCallSound.Wave.6.wav"));
按键音6.LoadAsync();
按键音7 = new SoundPlayer(获取程序集嵌入资源流("WaveCallSound.Wave.7.wav"));
按键音7.LoadAsync();
按键音8 = new SoundPlayer(获取程序集嵌入资源流("WaveCallSound.Wave.8.wav"));
按键音8.LoadAsync();
按键音9 = new SoundPlayer(获取程序集嵌入资源流("WaveCallSound.Wave.9.wav"));
按键音9.LoadAsync();
按键音星号 = new SoundPlayer(获取程序集嵌入资源流("WaveCallSound.Wave.星号.wav"));
按键音星号.LoadAsync();
按键音井号 = new SoundPlayer(获取程序集嵌入资源流("WaveCallSound.Wave.井号.wav"));
按键音井号.LoadAsync();
} public static void 播放(this string 号码)
{
foreach (char ch in 号码)
{
ch.播放(true);
}
} public static void 播放(this char 按键码, bool 同步)
{
switch (按键码)
{
case '#':
按键音井号.播放(同步);
break; case '*':
按键音星号.播放(同步);
break; case '0':
按键音0.播放(同步);
break; case '1':
按键音1.播放(同步);
break; case '2':
按键音2.播放(同步);
break; case '3':
按键音3.播放(同步);
break; case '4':
按键音4.播放(同步);
break; case '5':
按键音5.播放(同步);
break; case '6':
按键音6.播放(同步);
break; case '7':
按键音7.播放(同步);
break; case '8':
按键音8.播放(同步);
break; case '9':
按键音9.播放(同步);
break;
}
} private static void 播放(this SoundPlayer 播放器, bool 同步)
{
if (同步)
{
播放器.PlaySync();
}
else
{
播放器.Play();
}
} private static Stream 获取程序集嵌入资源流(string 资源名称)
{
return typeof(WaveCallSound).Assembly.GetManifestResourceStream(资源名称);
}
}
}
热心网友 时间:2024-10-21 19:07
如果非要用WMP播放,那么就将资源文件另存为文件(程序启动后判断目录下有无这个音乐文件,没见就将资源保存为文件),然后把路径提供给WMP即可。