How to play mp3 files in C#?

前端 未结 7 1025
孤独总比滥情好
孤独总比滥情好 2020-12-09 05:13

I\'m trying to play an MP3 file in C# using this guide: http://www.crowsprogramming.com/archives/58

And I\'m doing everything listed, but I still can\'t play any mus

7条回答
  •  青春惊慌失措
    2020-12-09 05:44

    I haven't used the Windows Media Player COM object, but here's a link to an alternative method. (I am not the author.) It uses pinvoke to call winmm.dll to play the MP3. I tested it out on Windows Server 2008 and it worked just fine.

    Here's a sample class using the code form the link.

    using System.Runtime.InteropServices;
    
    public class MP3Player
    {
          private string _command;
          private bool isOpen;
          [DllImport("winmm.dll")]
    
          private static extern long mciSendString(string strCommand,StringBuilder strReturn,int iReturnLength, IntPtr hwndCallback);
    
          public void Close()
          {
             _command = "close MediaFile";
             mciSendString(_command, null, 0, IntPtr.Zero);
             isOpen = false;
          }
    
          public void Open(string sFileName)
          {
             _command = "open \"" + sFileName + "\" type mpegvideo alias MediaFile";
             mciSendString(_command, null, 0, IntPtr.Zero);
             isOpen = true;
          }
    
          public void Play(bool loop)
          {
             if(isOpen)
             {
                _command = "play MediaFile";
                if (loop)
                 _command += " REPEAT";
                mciSendString(_command, null, 0, IntPtr.Zero);
             }
          }
    }
    

提交回复
热议问题