我想将 MediaElent 上的歌曲从 track1.mp3 更改为 track2.mp3。这是代码:
MyMediaElement.Stop();
Uri u = new Uri("track2.mp3", UriKind.Relative);
MyMediaElement.Source=u;
MyMediaElement.Play();
MediaElement 更改源但不会启动。这段代码可能有什么问题?
我想将 MediaElent 上的歌曲从 track1.mp3 更改为 track2.mp3。这是代码:
MyMediaElement.Stop();
Uri u = new Uri("track2.mp3", UriKind.Relative);
MyMediaElement.Source=u;
MyMediaElement.Play();
MediaElement 更改源但不会启动。这段代码可能有什么问题?
尝试将 MyMediaElement.AutoPlay 设置为 true,只要源更改它应该播放。您还可以使用采用流而不是 uri 的 MediaElement.SetSource() 方法进行调查。
我有同样的问题。我可以在 XAML 中设置自动播放和源代码,它会起作用,但如果我在代码中更改源代码,它将什么也不做。
我捕获了控件的 MediaOpened 事件。
问题是它在您更改源后立即点击 Play(),因此当前状态是关闭的。改变状态需要几个时钟周期。所以,如果你把 Play(); 在该事件处理程序中它将起作用。
你似乎没有做错什么。这里有几个我会尝试的诊断:-
将 track2 指定为初始文件是否有效?
附加到 MediaFailed 事件,它会被触发吗?
将 TextBlock 绑定到 CurrentState 属性以观察 CurrentState 的变化情况。
您设置AutoPlay
为false
然后在您执行的 MediaOpened 处理程序中Play()
。人们在这里暗示了解决方案,但不是很准确。您还可以处理 MediaFailed 事件,以防媒体因某种原因无法打开(找不到文件等)。