我很接近完成我的计划,但我有一个问题。 无论如何,我可以暂停循环,直到播放了Windows Media Player中的所有文件。 就像在流程示例中一样:
process.WaitForExit();
while (!process.HasExited)
Thread.Sleep(500);
代码:
private bool listbox3job()
{
AxWMPLib.AxWindowsMediaPlayer axWmp =
wfh.Child as AxWMPLib.AxWindowsMediaPlayer;
DateTime? start = starttid2.Value;
DateTime? end = sluttid2.Value;
DateTime now = DateTime.Now;
if (start == null || end == null)
{
}
else if (now >= start.Value && now <= end.Value)
{
while (DateTime.Now < end.Value) // Loops till DateEndTime.
{
foreach (var selected in listBox3.Items) // Each file in ItemList.
{
string s = selected.ToString();
if (listBox3Dict.ContainsKey(s))
{
axWmp.URL = (listBox3Dict[s]); //Where all WMP files starts
}
}
}
return true;
}
return false;
}
答案 0 :(得分:0)
我建议您处理PlaystateChanged事件。 msdn PlaystateChanged 在那里,您可以准确地确定当前媒体的播放何时开始和结束。
我还建议您使用(如果使用Windows窗体时嵌入)WPF MediaElement,因为它更容易使用且更稳定。