我对 C# 不是很好,所以也许它很明显,但我不明白为什么
mediaended
事件永远不会触发。
我使用此代码尝试在播放结束后关闭 MediaPlayer,因为即使在媒体结束后它也会使用内存:
void Play(string path)
{
MediaPlayer media = new MediaPlayer();
media.MediaEnded += Close;
media.Open(new Uri(path));
media.Play();
}
void Close(object source, EventArgs e)
{
((MediaPlayer)source).Close();
}
有人在论坛上说它需要在
Run
上使用system.windows.threading.dispatcher
方法但它只会冻结我的应用程序(控制台应用程序顺便说一句)无论我是在我的Main()
方法中还是在media.Play()
之后运行它。
我还尝试使用不同的长度来播放文件,范围从 1 秒到 15 秒,但它似乎没有任何改变。
如果您抽空回答,提前谢谢您!