我想将我的MediaElent上的歌曲从track1.mp3改为track2.mp3。这是代码:
MyMediaElement.Stop();
Uri u = new Uri("track2.mp3", UriKind.Relative);
MyMediaElement.Source=u;
MyMediaElement.Play();
MediaElement更改源但不会启动。这段代码可能有什么问题?
答案 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事件,以防因某些原因导致媒体无法打开(无法找到文件等)。