3

我想将 MediaElent 上的歌曲从 track1.mp3 更改为 track2.mp3。这是代码:

MyMediaElement.Stop();
Uri u = new Uri("track2.mp3", UriKind.Relative);
MyMediaElement.Source=u;
MyMediaElement.Play();

MediaElement 更改源但不会启动。这段代码可能有什么问题?

4

4 回答 4

5

尝试将 MyMediaElement.AutoPlay 设置为 true,只要源更改它应该播放。您还可以使用采用流而不是 uri 的 MediaElement.SetSource() 方法进行调查。

于 2010-02-15T22:28:57.273 回答
2

我有同样的问题。我可以在 XAML 中设置自动播放和源代码,它会起作用,但如果我在代码中更改源代码,它将什么也不做。
我捕获了控件的 MediaOpened 事件。
问题是它在您更改源后立即点击 Play(),因此当前状态是关闭的。改变状态需要几个时钟周期。所以,如果你把 Play(); 在该事件处理程序中它将起作用。

于 2010-02-25T00:31:16.737 回答
1

你似乎没有做错什么。这里有几个我会尝试的诊断:-

将 track2 指定为初始文件是否有效?

附加到 MediaFailed 事件,它会被触发吗?

将 TextBlock 绑定到 CurrentState 属性以观察 CurrentState 的变化情况。

于 2010-02-12T16:34:16.403 回答
0

您设置AutoPlayfalse然后在您执行的 MediaOpened 处理程序中Play()。人们在这里暗示了解决方案,但不是很准确。您还可以处理 MediaFailed 事件,以防媒体因某种原因无法打开(找不到文件等)。

于 2011-08-13T09:15:58.627 回答