【发布时间】:2017-05-21 17:52:08
【问题描述】:
我有一个基本的 Windows 窗体应用程序,它使用 System.Windows.Media.MediaPlayer 播放 MP3 文件。主窗体有一个打开第二个窗体的按钮。
第二种形式有一个按钮,可以播放 3 秒的 MP3 文件。
当我第一次打开第二个表单并单击“播放”按钮时,一切正常。但是如果我关闭第二个表单然后重新打开它,MP3 播放就会出现异常。通常它会播放两次声音。有时它会在几秒钟的延迟后播放声音。
从屏幕截图中可以看出,我在 Windows XP 中运行该应用程序。我也尝试在 Windows 10 机器上运行它,但没有出现问题。任何帮助确定此行为的原因将不胜感激。
这是播放 MP3 文件的第二种格式的代码:
public partial class SecondForm : Form
{
public SecondForm()
{
InitializeComponent();
}
private string _tone = Path.Combine("Resources", "beep-17.mp3");
private int _toneDuration = 3000;
System.Windows.Media.MediaPlayer _mediaPlayer = new System.Windows.Media.MediaPlayer();
private void PlayMP3Form_Load(object sender, EventArgs e)
{
string mp3Path = Path.GetFullPath(_tone);
Uri mp3File = new Uri(mp3Path);
_mediaPlayer.Open(new Uri(mp3File.AbsoluteUri));
}
private void buttonPlay_Click(object sender, EventArgs e)
{
_mediaPlayer.Position = TimeSpan.FromMilliseconds(_mediaPlayer.NaturalDuration.TimeSpan.TotalMilliseconds - _toneDuration);
_mediaPlayer.Play();
}
}
【问题讨论】:
标签: c# winforms windows-xp windows-media-player