WmpLib球员.暂停不工作
本文关键字:工作 暂停 球员 WmpLib | 更新日期: 2023-09-27 18:11:05
所以我想在c#中播放一个文件一段时间函数是
void playfile(int duration)
{
wmp.controls.play();
Console.WriteLine("control is here");
System.Threading.Thread.Sleep(duration);
Console.WriteLine("control is here");
wmp.controls.pause();
}
通话时播放器启动媒体播放器,但不暂停。"控制在这里"被打印了两次,但玩家没有暂停。但是当我在两个不同的按钮中显示它时,它工作得很好。如:
private void button2_Click(object sender, EventArgs e)
{
wmp.controls.play();
}
private void button3_Click(object sender, EventArgs e)
{
wmp.controls.pause();
}
我想开发一个函数来播放wav文件一段时间,然后停止,然后再播放一段时间,然后再次停止。
这应该对您有所帮助。首先在窗体上放置一个windowsmediaplayer控件,然后处理它的openstatechange事件,在我的代码中,你会看到一个名为duration的变量,你会设置它的值,就像你需要的那样(从上下,文本框....),之后的代码不言自明:
public partial class Form1 : Form
{
Timer t = new Timer();
int duration = 0;
public Form1()
{
InitializeComponent();
}
void t_Tick(object sender, EventArgs e)
{
if (axWindowsMediaPlayer1.Ctlcontrols.currentPosition >= duration)
{
axWindowsMediaPlayer1.Ctlcontrols.stop();
duration = 0;//reset it...
}
}
private void button1_Click(object sender, EventArgs e)
{
duration = 10;/* get the value from wherever you need to...*/
axWindowsMediaPlayer1.URL = @"E:'music'Mike Terrana'Shadows of the Past'01 Pleasure Cube.mp3";
axWindowsMediaPlayer1.Ctlcontrols.play();
}
private void Form1_Load(object sender, EventArgs e)
{
t.Interval = 500;
t.Tick += new EventHandler(t_Tick);
axWindowsMediaPlayer1.OpenStateChange += new AxWMPLib._WMPOCXEvents_OpenStateChangeEventHandler(axWindowsMediaPlayer1_OpenStateChange);
}
void axWindowsMediaPlayer1_OpenStateChange(object sender, AxWMPLib._WMPOCXEvents_OpenStateChangeEvent e)
{
if (axWindowsMediaPlayer1.openState == WMPLib.WMPOpenState.wmposMediaOpen)
{
t.Start();
}
}
}