等到Windows Media Player结束?

时间:2013-04-16 18:51:12

标签: c# wpf windows loops media-player

我很接近完成我的计划,但我有一个问题。 无论如何,我可以暂停循环,直到播放了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;
        }

1 个答案:

答案 0 :(得分:0)

我建议您处理PlaystateChanged事件。 msdn PlaystateChanged 在那里,您可以准确地确定当前媒体的播放何时开始和结束。

我还建议您使用(如果使用Windows窗体时嵌入)WPF MediaElement,因为它更容易使用且更稳定。