gpt4 book ai didi

c# - WmpLib player.pause 不工作

转载 作者:太空宇宙 更新时间:2023-11-03 15:53:59 32 4
gpt4 key购买 nike

所以我想在 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();
}

通话中的播放器启动媒体播放器但不暂停。“Control is here”打印了两次,但播放器没有暂停。但是当我用两个不同的按钮显示它时,它工作正常。例如。

private void button2_Click(object sender, EventArgs e)
{
wmp.controls.play();
}

private void button3_Click(object sender, EventArgs e)
{
wmp.controls.pause();
}

我想开发一个函数来播放一个 wav 文件一段时间然后停止然后再次播放一段时间然后再次停止。

最佳答案

这应该对你有帮助。首先将 windowsmediaplayer 控件放在窗体上,然后处理它的 openstatechanged 事件,在我的代码中你会看到名为 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();
}
}

}

关于c# - WmpLib player.pause 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24514964/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com