界面上放了个mediaelement 想实现一首音乐循环播放。<MediaElement Canvas.Left="16" Canvas.Top="662" Height="45"
Name="mediaElement1" Width="68" Visibility="Hidden"
LoadedBehavior="Manual" MediaEnded="mediaElement1_MediaEnded" Panel.ZIndex="100" Volume="1" />
代码:
private void mediaElement1_MediaEnded(object sender, RoutedEventArgs e)
{
//循环播放
try
{
// MessageBox.Show(mediaElement1.Source.OriginalString.ToString());
if (mediaElement1.Source.OriginalString.ToString().Contains("\\wav\\bg\\") ||
mediaElement1.Source.OriginalString.ToString().Contains("\\wav\\st\\"))
{
mediaElement1.Position = TimeSpan.FromMilliseconds(0);
mediaElement1.Close();
mediaElement1.Play();
}
}
catch (Exception ex) { MessageBox.Show(ex.ToString()); }
}
问题出现了。
在本机上 win7上,能正常循环播放,多少次都正常。
在xp sp2上,只能播放一两次,然后就没声音了。也不报错。
但是我把代码中
// MessageBox.Show(mediaElement1.Source.OriginalString.ToString());
的注释取消掉。每次在播放结束时会弹出提示框,然后又能播放了,这样能一直循环下去。把MessageBox.Show(mediaElement1.Source.OriginalString.ToString());注释掉,又只播放一两次就停止了。请问这是什么问题。谢谢。
Name="mediaElement1" Width="68" Visibility="Hidden"
LoadedBehavior="Manual" MediaEnded="mediaElement1_MediaEnded" Panel.ZIndex="100" Volume="1" />
代码:
private void mediaElement1_MediaEnded(object sender, RoutedEventArgs e)
{
//循环播放
try
{
// MessageBox.Show(mediaElement1.Source.OriginalString.ToString());
if (mediaElement1.Source.OriginalString.ToString().Contains("\\wav\\bg\\") ||
mediaElement1.Source.OriginalString.ToString().Contains("\\wav\\st\\"))
{
mediaElement1.Position = TimeSpan.FromMilliseconds(0);
mediaElement1.Close();
mediaElement1.Play();
}
}
catch (Exception ex) { MessageBox.Show(ex.ToString()); }
}
问题出现了。
在本机上 win7上,能正常循环播放,多少次都正常。
在xp sp2上,只能播放一两次,然后就没声音了。也不报错。
但是我把代码中
// MessageBox.Show(mediaElement1.Source.OriginalString.ToString());
的注释取消掉。每次在播放结束时会弹出提示框,然后又能播放了,这样能一直循环下去。把MessageBox.Show(mediaElement1.Source.OriginalString.ToString());注释掉,又只播放一两次就停止了。请问这是什么问题。谢谢。
{
if(File.Exists(info.videoPath))
{
mediaElement1.Source = new Uri(info.videoPath);
mediaElement1.Play();
}
} private void mediaElement1_MediaEnded(object sender, RoutedEventArgs e)
{
if (mediaElement1.HasAudio)
{
mediaElement1.Position = new TimeSpan(0, 0, 1);
mediaElement1.Play();
}
}