Budzik mp3 - Windows Forms
Witam. Chciałbym przerobić ten [url=http://www65.zippyshare.com/v/77539825/file.html]PROGRAM[/url] na budzik mp3. Ten program odtwarza plik wav. Ale co zrobić żeby odtwarzał mp3? Myślałem że wystarczy tylko wrzucić do katalogu z programem plik mp3 a plik wav wywalić i w kodzie zmienić nazwę pliku na .mp3 - ale jednak nie. Program ruszył, nastawiłem budzik ale gdy już miał pojawić się alarm to wtedy wywaliło mi błąd. Wiecie jak to ogarnąć?
Odpowiedzi: 6
[code]
namespace ConsoleApplication1
{
internal class Program
{
private static void Main(string[] args)
{
System.Timers.Timer tm = new System.Timers.Timer(1000);
tm.Elapsed += new System.Timers.ElapsedEventHandler(iwent);
tm.Enabled = true;
Console.Read();
}
private static void iwent(object source, System.Timers.ElapsedEventArgs e)
{
System.Media.SoundPlayer simpleSound = new System.Media.SoundPlayer(Properties.Resources.Windows_Startup);
simpleSound.Play();
}
}
}[/code]
To z mojego najprosztszego metronomu. Przerób sobie odpowiednio.
Dobra działa, tylko jest jeden problem. Ustawiam godzinę i o wskazanej godzinie muzyka sama sie nie włącza tylko trzeba nacisnąć przycisk "play" :( Jak zrobić żeby mp3 sama się "uruchamiała"?
No wygląda na to że się uruchamia, ale nic nie słychać ;/ Co zrobić? Jestem początkujący.
Postaw breakpointa w tej metodzie i zobacz, czy w ogóle to jest uruchamiane ;-).
[code]private void axWindowsMediaPlayer1_Enter(object sender, EventArgs e)[/code]
No i mam coś takiego i dalej nie działa, błędu nie wywala ale o wskazanej godzinie żaden sygnał sie nie pojawia, martwa cisza :)
Tak to wygląda:
[code]using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Media;
using System.Windows.Forms;
namespace Budzik
{
public partial class frmBudzik : Form
{
private DateTime alarm = new DateTime();
private DateTime teraz;
private bool gra = false;
private bool ustawiony = false;
private WMPLib.WindowsMediaPlayer wp = new WMPLib.WindowsMediaPlayer();
private DateTime koniecalarmu;
private TimeSpan czastrwania = new TimeSpan(0, 1, 0);
public frmBudzik()
{
InitializeComponent();
licznik.Start();
}
private void axWindowsMediaPlayer1_Enter(object sender, EventArgs e)
{
WMPLib.WindowsMediaPlayer wp = new WMPLib.WindowsMediaPlayer();
wp.URL = "x.mp3";
wp.controls.play();
}
private void licznik_Tick(object sender, EventArgs e)
{
teraz = DateTime.Now;
lblCzas.Text = teraz.ToString("T");
if (ustawiony &&
teraz.Hour == alarm.Hour &&
teraz.Minute == alarm.Minute &&
teraz.Second == alarm.Second && !gra)
{
gra = true;
mnuUstaw.Text = "Stop";
cmdUstaw.Text = "Stop";
koniecalarmu = DateTime.Now.Add(czastrwania);
}
if (gra)
{
if (koniecalarmu.Hour == teraz.Hour &&
koniecalarmu.Minute == teraz.Minute &&
koniecalarmu.Second == teraz.Second)
{
mnuUstaw.Text = "Ustaw";
cmdUstaw.Text = "Ustaw";
gra = false;
}
}
}
private void cmdUstaw_Click(object sender, EventArgs e)
{
if (cmdUstaw.Text == "Ustaw")
{
cmdUstaw.Text = "OK";
lblAlarm.Visible = false;
txtAlarm.Visible = true;
txtAlarm.Focus();
}
else if (cmdUstaw.Text == "OK")
{
DateTime tmp = new DateTime();
try
{
tmp = DateTime.Parse(txtAlarm.Text);
}
catch
{
lblAlarm.Text = "nie ustawiono";
ustawiony = false;
txtAlarm.Visible = false;
lblAlarm.Visible = true;
cmdUstaw.Text = "Ustaw";
MessageBox.Show("Błąd", "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
alarm = tmp;
lblAlarm.Text = alarm.ToString("T");
txtAlarm.Visible = false;
lblAlarm.Visible = true;
ustawiony = true;
cmdUstaw.Text = "Ustaw";
}
else if (cmdUstaw.Text == "Stop")
{
gra = false;
cmdUstaw.Text = "Ustaw";
mnuUstaw.Text = "Ustaw";
}
}
private void frmBudzik_Resize(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)
{
this.Hide();
IkonaTray.Visible = true;
}
}
private void mnuPokaz_Click(object sender, EventArgs e)
{
this.Show();
IkonaTray.Visible = false;
this.WindowState = FormWindowState.Normal;
}
private void mnuUstaw_Click(object sender, EventArgs e)
{
this.Show();
this.WindowState = FormWindowState.Normal;
IkonaTray.Visible = false;
cmdUstaw_Click(sender, e);
}
private void mnuWylacz_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void IkonaTray_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button== MouseButtons.Left)
mnuPokaz_Click(sender, e);
}
private void IkonaTray_MouseMove(object sender, MouseEventArgs e)
{
IkonaTray.Text = "Czas: " + lblCzas.Text +
"\nAlarm: " + lblAlarm.Text;
}
}
}[/code]
Bo klasa SoundPlayer obsługuje wyłącznie wave'y.
[code]WMPLib.WindowsMediaPlayer wp = new WMPLib.WindowsMediaPlayer();
wp.URL = "x.mp3";
wp.controls.play();[/code]
+ [url=http://msdn.microsoft.com/en-us/library/dd564585(v=vs.85).aspx]Adding the Windows Media Player Control[/url]
Strona 1 / 1