Hola
Tu problema empieza debido a la limitacion que te provee el mismo .net framework con la clase SoundPlayer que estas usando , ya que esta especificada solo para la reproduccion de archivos .wav
Entonces lo que debes hacer es cambiar todo el modelo de la reproduccion del audio de tu despertador si es que deseas lograr reproducir mp3's
Puedes hacerlo de varias formas, la mas facil es haciendo uso de interoperabilidad COM haciendo referencia al componente "ActiveMovie COM" (C:\WINDOWS\system32\quartz.dll)
Aqui te pego el codigo para que veas como es el funcionamiento basico de dicho componente:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using QuartzTypeLib;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter =
"Media Files|*.wav;*.mp3;*.mp2;*.wma|All Files|*.*";
if (DialogResult.OK == openFileDialog.ShowDialog())
{
QuartzTypeLib.FilgraphManager graphManager =
new QuartzTypeLib.FilgraphManager();
QuartzTypeLib.IMediaControl mediacontrol =
(QuartzTypeLib.IMediaControl)graphManager;
mediacontrol.RenderFile(openFileDialog.FileName);
mediacontrol.Run();
}
}
}
}
Ese codigo es el standar para el uso del componente lo encuentras en libros, webs, etc. pruebalo y veras como funciona la reproduccion.
sigue estos detalles por si tienes problemas al compilar:
Crea un nuevo proyecto windows C#
Agrega una referencia al componente
Agrega un boton al formulario
agrega un OpenFileDialog
para los detalles de la programacion del componente, lo encuentras en cualquier sitio de la red, avisa en caso de dudas.
Y con respecto a otras formas, pues podrias hacerlo jugando con api's pero es mas trabajoso.
saludos!