1

我有这个带有 C# 代码的应用程序,但 MP3 只是没有播放。

 music = new MediaElement();

 music.AutoPlay = false;
 music.Source = new Uri("/music/musicNormal.mp3", UriKind.Absolute);
 music.CurrentStateChanged += new RoutedEventHandler(music_CurrentStateChanged);
 music.MediaOpened += new RoutedEventHandler(music_MediaOpened);

对于currentStateChanged事件,我给出了一个 MessageBox,但它从未触发。对于MediaOpened事件我给出一条线music.Play(),但它也从未触发

我有这些功能

private void changeMusic(bool normal)
    {
        music.Stop();
        if (normal)
            music.Source = new Uri("/music/musicNormal.mp3", UriKind.Absolute);
        else
            music.Source = new Uri("/music/musicFast.mp3", UriKind.Absolute);
    }

private void playMusic()
    {
        if (timeBar.Value <= 10 && music1)
        {
            timeNumber.Foreground = new SolidColorBrush(Colors.Red);
            changeMusic(false);
            music2 = true;
            music1 = false;
        }
        else if (timeBar.Value > 10 && music2)
        {
            timeNumber.Foreground = new SolidColorBrush(Colors.White);
            changeMusic(true);
            music1 = true;
            music2 = false;
        }
        if (musicEnabled) music.Play();
    }

我试过了 :

  • 通过 MediaFailed 事件进行跟踪,但从未失败
  • 将 UriKind 更改为 Relative 和 RelativeOrAbsolute
  • 给出/去掉 URI 开头的斜线
  • 试图将这两个分成 2 个 mediaElement
  • 将 mp3 设置为资源、内容、嵌入资源

我知道的 :

  • 状态始终“关闭”
  • 如果我在 XAML 中指定了 URI,它就可以工作。但我不想那样做。
  • 所有功能都根据条件正常工作。只是音乐不会开始。

有什么想法吗?

4

1 回答 1

2

找到答案!我不喜欢在 SOF 中进行更深入的搜索:stackoverflow.com/questions/7018335/... 在我们可以在代码中修改 MediaElement 之前,我们需要先在 XAML 中将其可视化。

于 2012-12-24T08:42:17.893 回答