I just wanna give you the simplest code to play mp3's using the QuartzTypeLib (aka DirectShow). It's kind of part of DirectX but is its own library. Its very easy to work with and you have the ability to even change the volume, balance, the speed of the mp3, etc. You can even run videos (different source code though). And with the right tweaks combined with the powers of DirectX, you can even put videos within polygons! Anyways, your quartz.dll lib will be found in your SysWOW64 folder (System32 if an older Windows). Add it to your references in VB.Net and simply do this code:

vb.net Code:
  1. Imports QuartzTypeLib
  2.  
  3. Public Class Form1
  4.     Public DS_Control As IMediaControl
  5.  
  6.     Public Sub DS_Load_Media(ByVal File_Name As String)
  7.         DS_Control = New FilgraphManager
  8.         DS_Control.RenderFile(File_Name)
  9.     End Sub
  10.  
  11.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  12.         DS_Load_Media(Application.StartupPath & "\Your mp3 name here.mp3")
  13.         DS_Control.Run()
  14.     End Sub
  15. End Class

It's insane how little code it takes to run an mp3. The command DS_Control.Run() can even be put in a sub called Play if you want to play it. But it has other commands to stop it as well. The same code can easily be ported to C# as well. I also have over in the C++ codebank to do the same thing in C++, only it takes more code sadly but its the same concept. Enjoy guys and Merry belated Christmas