怎么在URL中写路径,在其他电脑中也可以运行。另外能不能把背景音乐打包到exe文件里?
Application.StartupPath为winform exe文件所在路径,将背景音乐和exec放在同一个目录下,下面的代码path就是音乐文件的路径
var path=Application.StartupPath + @"\firstlove.mp3";
wmp1.URL = path;
wmp1.Ctlcontrols.play();
也可以将MP3之类的文件放到资源文件中,但是wmp无法直接播放二进制,需要将数据导出临时文件按照上面的方法设置路径后播放。
或者引用NAudio,可以直接播放资源文件。NAudio可以去https://download.csdn.net/download/technologist_40/19661864这里下载
//需要导入2个名字空间
//using System.IO;
//using NAudio.Wave;
MemoryStream ms = new MemoryStream(Resource1.first_love);//Resource1为添加的资源文件名称,first_love为嵌入到资源文件的文件名
WaveStream ws = new Mp3FileReader(ms);
WaveOutEvent output = new WaveOutEvent();
output.Init(ws);
output.Play();
一定要用window media player,则需要从资源文件将mp3写入系统中
var mp3data = Resource1.first_love;
var mp3 = Application.StartupPath+ @"\\mymusic.mp3";
if (!System.IO.File.Exists(mp3)) System.IO.File.WriteAllBytes(mp3, mp3data);//音乐文件不存在从资源文件中解压2进制数据到exe相同目录下
wmp1.URL = mp3 ;//wmp1为拖入winform中window media player控件name名称
wmp1.Ctlcontrols.play();
帮助到你能点击采纳吗,谢谢~~
把背景音乐文件一起打包发布,相对路径是固定的,用程序获取应用程序的绝对路径拼接就可以了。
可以把音乐添加到资源文件里,程序运行后读取写入临时文件,再播放这个文件。
或者用System.IO.Path.GetDirectoryName(Application.ExecutablePath) 获取程序所在目录
Ring10.wav文件添加到资源文件中。
点按钮播放音乐。
private void button1_Click(object sender, EventArgs e)
{
System.Media.SoundPlayer player = new System.Media.SoundPlayer(Properties.Resources.Ring10);
player.Play();
}
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m