在 C# 中更改 Windows Phone 应用程序的 MediaElement 源
Change MediaElement Source for Windows Phone Application in C#
private void Button2_Click(object sender, RoutedEventArgs e)
{
Music.Stop();
var NewSource = new MediaElement { Source = new Uri("/Assets/Audio/Background/cherished.wav") };
Music.Source = NewSource.Source;
Music.Play();
}
我正在制作一个 XAML 应用程序,它需要我通过 C# 动态更改 MediaElement 类型的源。我试着四处寻找一些东西,这将是我能找到的最佳答案,但是它抛出一个异常,因为 newSource 变量为 NULL。
编辑:
将中间两行替换为直接设置 Music.Source 的一行并添加 UriKind.Relative 完成了更改源的工作。
Music.Stop();
Music.Source = new Uri("/Assets/Audio/Background/cherished.wav", UriKind.Relative);
Music.Play();
但是,下一行 Music.Play() 由于某种原因没有播放该文件。如果我再次按下 Button1(单击事件处理程序仅包含 Music.Play(); ),它将开始播放文件,但开头会有一点断断续续。
假设音频文件是 12345,它将播放 1-12345。
试试这个:
- 为 MediaElement 注册 MediaOpened 事件并将
mediaElement.Play()
放入同一事件中。
要更改 MediaElemnt 的来源,请输入以下代码:
if (mediaElement.Source != null)
{
mediaElement.Pause();
mediaElement.Source = 新 Uri("YOUR SOURCE URI",UriKind.Absolute);
}
它对我有用。
private void Button2_Click(object sender, RoutedEventArgs e)
{
Music.Stop();
var NewSource = new MediaElement { Source = new Uri("/Assets/Audio/Background/cherished.wav") };
Music.Source = NewSource.Source;
Music.Play();
}
我正在制作一个 XAML 应用程序,它需要我通过 C# 动态更改 MediaElement 类型的源。我试着四处寻找一些东西,这将是我能找到的最佳答案,但是它抛出一个异常,因为 newSource 变量为 NULL。
编辑:
将中间两行替换为直接设置 Music.Source 的一行并添加 UriKind.Relative 完成了更改源的工作。
Music.Stop();
Music.Source = new Uri("/Assets/Audio/Background/cherished.wav", UriKind.Relative);
Music.Play();
但是,下一行 Music.Play() 由于某种原因没有播放该文件。如果我再次按下 Button1(单击事件处理程序仅包含 Music.Play(); ),它将开始播放文件,但开头会有一点断断续续。 假设音频文件是 12345,它将播放 1-12345。
试试这个:
- 为 MediaElement 注册 MediaOpened 事件并将
mediaElement.Play()
放入同一事件中。 要更改 MediaElemnt 的来源,请输入以下代码:
if (mediaElement.Source != null) { mediaElement.Pause(); mediaElement.Source = 新 Uri("YOUR SOURCE URI",UriKind.Absolute);
}
它对我有用。