在MediaElement中更改源(SILVERLIGHT)

时间:2010-02-12 01:07:10

标签: silverlight playback mediaelement

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

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

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

4 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:2)

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

答案 2 :(得分:1)

你似乎没有做错任何事。以下是我尝试的几种诊断方法: -

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

附加到MediaFailed事件,是否会被触发?

将TextBlock绑定到CurrentState属性以观察CurrentState的更改方式。

答案 3 :(得分:0)

您将AutoPlay设置为false,然后在MediaOpened处理程序中设置Play()。人们有点暗示这里的解决方案,但不是很准确。您也可以处理MediaFailed事件,以防因某些原因导致媒体无法打开(无法找到文件等)。