程序大体如下:
一直运行着,符合特定条件后,弹出一个窗体(Alert).
在窗体的load事件中,执行如下代码:strMusic 是音乐的路径,从数据库里取出来的. if (!String.IsNullOrEmpty(strMusic))
{
MSMusicPlayer obj = new MSMusicPlayer();
obj.Play(strMusic);
} //网上找的类.抄别人的.
public class MSMusicPlayer
{
[DllImport("winmm.dll")]
private static extern long mciSendString(string strCommand,
string strReturn, int iReturnLength, IntPtr hwndCallback); public string Status
{
get
{
string sCommand = "status MediaFile mode";
string ret = "";
mciSendString(sCommand, ret, 10, IntPtr.Zero);
return ret.Trim();
}
}
private void Open(string strFileName)
{
string sCommand = "open \"" + strFileName + "\" type mpegvideo alias MediaFile";
string ret = null;
mciSendString(sCommand, ret, 0, IntPtr.Zero);
}
/// <summary>
/// Play Music
/// </summary>
/// <param name="filename">detail file's path and name</param>
public void Play(string strFilePath)
{
Open(strFilePath);
string sCommand = "play MediaFile";
string ret = null;
mciSendString(sCommand, ret, 0, IntPtr.Zero);
}
public void Stop()
{
string sCommand = "stop MediaFile";
string ret = null;
mciSendString(sCommand, ret, 0, IntPtr.Zero);
}
public void Pause()
{
string sCommand = "pause MediaFile";
string ret = null;
mciSendString(sCommand, ret, 0, IntPtr.Zero);
}
} //点关闭,停掉音乐
private void Alert_FormClosing(object sender, FormClosingEventArgs e)
{
MSMusicPlayer obj = new MSMusicPlayer();
obj.Stop();
}
出现的问题:
因为主程序一直在运行,当满足另一个条件时,又会弹出一个窗体.
第一种情况: 前一个关了,后一个接着前一个的音乐接着放! (库里存的是不同的音乐)
第二种情况: 前一个不关,后一个的音乐根本不放.只有前一个在放.哪位大哥懂,给看看.解决解决.谢啦.
一直运行着,符合特定条件后,弹出一个窗体(Alert).
在窗体的load事件中,执行如下代码:strMusic 是音乐的路径,从数据库里取出来的. if (!String.IsNullOrEmpty(strMusic))
{
MSMusicPlayer obj = new MSMusicPlayer();
obj.Play(strMusic);
} //网上找的类.抄别人的.
public class MSMusicPlayer
{
[DllImport("winmm.dll")]
private static extern long mciSendString(string strCommand,
string strReturn, int iReturnLength, IntPtr hwndCallback); public string Status
{
get
{
string sCommand = "status MediaFile mode";
string ret = "";
mciSendString(sCommand, ret, 10, IntPtr.Zero);
return ret.Trim();
}
}
private void Open(string strFileName)
{
string sCommand = "open \"" + strFileName + "\" type mpegvideo alias MediaFile";
string ret = null;
mciSendString(sCommand, ret, 0, IntPtr.Zero);
}
/// <summary>
/// Play Music
/// </summary>
/// <param name="filename">detail file's path and name</param>
public void Play(string strFilePath)
{
Open(strFilePath);
string sCommand = "play MediaFile";
string ret = null;
mciSendString(sCommand, ret, 0, IntPtr.Zero);
}
public void Stop()
{
string sCommand = "stop MediaFile";
string ret = null;
mciSendString(sCommand, ret, 0, IntPtr.Zero);
}
public void Pause()
{
string sCommand = "pause MediaFile";
string ret = null;
mciSendString(sCommand, ret, 0, IntPtr.Zero);
}
} //点关闭,停掉音乐
private void Alert_FormClosing(object sender, FormClosingEventArgs e)
{
MSMusicPlayer obj = new MSMusicPlayer();
obj.Stop();
}
出现的问题:
因为主程序一直在运行,当满足另一个条件时,又会弹出一个窗体.
第一种情况: 前一个关了,后一个接着前一个的音乐接着放! (库里存的是不同的音乐)
第二种情况: 前一个不关,后一个的音乐根本不放.只有前一个在放.哪位大哥懂,给看看.解决解决.谢啦.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货