Hi All,
Here you can learn to Create a Music Player in C#. This is a simple tutorial and even beginners can learn without any confusion.
This Player also supports video files (large files are not supported)
Lets Get Started
1. Open Visual Studio -> New Project -> Windows Form Application and name it as
MusicPlayer.
2. Your New Project will be created with a blank Form. You can Run it by clicking on the
green Run/Start button on the top. Now change the name of your form by clicking on
the form and press F4 to get the Properties dialog box. Here change the Text to
"Music Player". If you want, change the BackColor of your form to get a different
background color for your form.
3. Now add 4 buttons, 1 textbox , 1 label and an OpenFileDialog to your form from the
toolbox (shown in the left side of Visual Studio) and design it as shown in the below
image. (To add controls to a form, just click on the control from the toolbox and drag
it to the form).
Click on each control and change its Properties as shown below;
button1 : Name - btnOpen
Text - Open
button2 : Name - btnPlay
Text - Play
button3 : Name - btnPause
Text - Pause
button4 : Name - btnStop
Text - Stop
label1 : Text - Now Playing
textbox1 : Name - txtbxFilepath
4. Now Add a new Class to your Project. To do that Right Click on your Project from the
Solution Explorer and Add -> New Item -> Class and name it as Music.
5. Now its time to start the coding part of our project. Update the code of your newly
created class Music.cs with the below given code.
Music.cs
using System.Runtime.InteropServices;
using System.Text;
namespace MusicPlayer
{
class Music
{
//To import the dll winmn.dll which allows to play mp3 files
[DllImport("winmm.dll")]
private static extern long mciSendString(string lpstrCommand, StringBuilder lpstrReturnString,
int uReturnLength, int hwndCallback);
//To open a file to our application
public void open(string file)
{
string command = "open \"" + file + "\" type MPEGVideo alias MyMusic";
mciSendString(command, null, 0, 0);
}
//To play the file
public void play()
{
string command = "play MyMusic";
mciSendString(command, null, 0, 0);
}
//To pause the file
public void pause()
{
string command = "stop MyMusic";
mciSendString(command, null, 0, 0);
}
//To stop the file
public void stop()
{
string command = "close MyMusic";
mciSendString(command, null, 0, 0);
}
}
}
6. Now double click on Open button from your form. Event handler for Open button click
will be added as shown below.
Now do the same for all other buttons (Play, Pause and Stop). Then update the code
as shown below
using System;
using System.Windows.Forms;
namespace MusicPlayer
{
public partial class Form1 : Form
{
Music m = new Music();
public Form1()
{
InitializeComponent();
}
private void btnOpen_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
m.open(openFileDialog1.FileName);
txtbxFilepath.Text = openFileDialog1.FileName;
}
}
private void btnPlay_Click(object sender, EventArgs e)
{
m.play();
}
private void btnStop_Click(object sender, EventArgs e)
{
m.stop();
txtbxFilepath.Text = "";
}
private void btnPause_Click(object sender, EventArgs e)
{
m.pause();
}
}
}
N.B :- Always try to add event handlers by double clicking on the controls.Just
typing / copying the code will not add the code that hooks up the
corresponding events to the handlers.
7. Now Rebuild and Run your project. See your Music Player is ready and you can open
your music file / video file and play it, pause and Stop.
Output
1. Music
2. Video
8. Enjoy the Music. In case of any errors or doubts please feel free to drop in a comment.
I am happy to help you.
See Also
Love this code! Now how can I get videos to play in a control in a WinForm instead of opening and playing in its own window.
ReplyDeletewhere the code below step 6 is to be written in program
ReplyDeletewhere the code below step 6 is to be written in program
ReplyDeletei having problem in [DllImport]
ReplyDeleteHey,
ReplyDeleteNice tutorial.But I could not get this code working. I think the problem lies with the DLL import,please could you explain it?
CHeers