system.windows.media.mediaplayer 在 C# .NET Framework 3.5 中未触发事件 mediaended 的问题

问题描述 投票:0回答:0

我对 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 秒,但它似乎没有任何改变。

如果您抽空回答,提前谢谢您!

c# events windows-media-player
© www.soinside.com 2019 - 2024. All rights reserved.