所以我试图循环背景音乐在我的UWP应用程序,我有一类叫做soundControl来处理音乐和声音是这样的:的MediaElement被拒绝循环
public class soundControl
{
private static MediaElement loop = new MediaElement();
public static async void stopLoop()
{
loop.Stop();
}
public static async void loadLoopTimeBG()
{
Windows.Storage.StorageFolder folder = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFolderAsync(@"Assets\Sounds");
Windows.Storage.StorageFile file = await folder.GetFileAsync("battle.wav");
var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read);
loop.AutoPlay = false;
loop.SetSource(stream, file.ContentType);
loop.IsLooping = true;
}
public static void loopTimeBG()
{
loop.Play();
}
每当我要玩这个音乐我呼吁:
soundControl.loadLoopTimeBG();
soundControl.loopTimeBG();
问题是它起着只是一个时间和停止,我不知道为什么 我试着像另一种方法:
loop.MediaEnded += mediaEnded;
和事件处理程序是这样的:
private static void mediaEnded(object sender, RoutedEventArgs e)
{
loop.Position = TimeSpan.Zero;
loop.Play();
}
它也没有工作,在调试时,它甚至不通过靶向的mediaEnded事件,当音乐结束。
这里的任何帮助将不胜感激。 感谢
感谢您的答案,但仍然没有运气,它已经与Audacity保存为WAV,试图建议将它保存为MP3仍然是同样的问题。 我注意到的是,如果我在xaml中创建mediaElement而不是在代码中,它将开始按照它应该的方式行事。 我只想看看是否有人明白为什么这是这种情况,因为我现在很好奇。 –
我已经用我的发现更新了我的答案:-)。这真的是一个非常有趣的问题 –
韦尔这是一个非常有趣的解释,它实际上一旦我将它添加到画布上,我非常感谢你,这个问题让我感到非常兴奋,甚至当我发现一个解决方法时我并不满意。 –