问题描述
|
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>
解决方法
由于尚未完全解决-
您正在寻找
MediaElement
在循环停止时自行循环播放。您的代码没有这样做。相反,您的代码是1)单击按钮时停止音乐。下一行代码:if (Lala == true)
是media元素上的布尔值。
即使您仅拥有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天哪。
,我认为更好的方法可能是指定媒体元素的属性... Loop = \“ true \”