4
private void button1_Click(object sender, RoutedEventArgs e)
{
    MediaElement Lala = 
        ((MediaElement)App.Current.Resources["backgroundMusic"]).Stop();

    if (Lala == true)
    {
        ((MediaElement)App.Current.Resources["backgroundMusic"]).Play();
    }

为什么不会循环?

或者有没有其他方法可以让我的 BGM 循环播放?

这是我在 App.xaml 中写的,它可以工作,但不知道如何循环它:

<Application.Resources>
    <MediaElement x:Name="backgroundMusic" Source="Nyan.mp3" AutoPlay="True" Volume="1" />
</Application.Resources>
4

2 回答 2

2

由于尚未完全回答-

MediaElement当它停止循环时,您正在寻找to 循环本身。您的代码没有这样做。相反,您的代码是 1) 单击按钮时停止音乐。下一行代码:if (Lala == true)是媒体元素的布尔值。

自动循环的简单方法是插入代码,即使您的代码完全在 XAML 中也是如此MediaEnded=""。有了这个,您可以创建一个事件处理程序来指定媒体结束时要做什么。因此,在您的示例中,您的 XAML 将如下所示:

 <MediaElement x:Name="backgroundMusic" Source="Nyan.mp3" AutoPlay="True" Volume="1" MediaEnded="DoThisWhenMediaEnds" />

你的 c# 看起来像这样:

 private void DoThisWhenMediaEnds(object sender, RoutedEventArgs e)
 {
    //what to do when the media has ended. In this case:
    backgroundMusic.Play();
 }

给你!您将拥有您可以管理的所有 Nyan 善良。

于 2011-10-06T15:50:42.773 回答
0

我认为更好的方法可能是指定媒体元素的属性... Loop="true"

于 2011-05-24T05:23:37.060 回答