У меня есть базовое приложение Windows Forms, которое использует System.Windows.Media.MediaPlayer для воспроизведения MP3-файла. В основной форме есть одна кнопка, которая открывает вторую форму.System.Windows.Media.MediaPlayer играет звук дважды
Вторая форма имеет одну кнопку, которая играет 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();
}
}