C#實現一個MP3播放類

b5cw 9年前發布 | 2K 次閱讀 C#

C#定義的一個MP3播放類,將Mp3文件作為資源文件包含到項目中,就可以播放mp3了

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Runtime.InteropServices;

namespace Mp3Tool { public Class MP3Player {

    [DllImport ("winmm.dll")]
    static extern Int32 mciSendString (String command,StringBuilder buffer, Int32 bufferSize, IntPtr hwndCallback);

    /// <summary>
    /// temporary repository of music files
    /// </ summary>
    private String m_musicPath = "";

    /// <summary>
    /// parent window handle
    /// </ summary>
    private IntPtr m_Handle;

    /// <summary>
    /// Create Mp3 player class
    /// </ summary>
    /// <PARAM name="music">embedded music file</ param>
    /// <PARAM name="path">temporary music file path</ param>
    /// <PARAM name="Handle">parent window handle</ param>
    public MP3Player (Byte [] Music, String path, IntPtr Handle)
    {
        try
        {
            m_Handle = Handle;
            m_musicPath = Path.Combine (path, "temp.mp3");
            FileStream fs = new FileStream (m_musicPath, FileMode.Create);
            fs.Write (Music, 0, music.Length);
            fs.Close ();
        }
        catch (Exception)
        {

        }
    }

    /// <summary>
    /// Create Mp3 player class
    /// </ summary>
    /// <PARAM name="musicPath">to play the mp3 file path</ param>
    /// <PARAM name="Handle">parent window handle</ param>
    public MP3Player(String musicPath, IntPtr Handle)
    {
        m_musicPath = musicPath;
        m_Handle = Handle;
    }

    public MP3Player(Byte [] Music, IntPtr Handle) : this(Music, @"C:\Windows\",Handle)
    {

    }

    public void Open (String path)
    {
        IF (path ! = "")
        {
            try
            {
                mciSendString ("Open " + path + " alias Media", null, 0, m_Handle);
                mciSendString ("play Media", null, 0, m_Handle);
            }
            catch (Exception)
            {

            }
        }
    }

    public void Open()
    {
        Open (m_musicPath);
    }

    void CloseMedia()
{
        try
        {
            mciSendString ("Close ALL", null, 0, m_Handle);
        }
        catch (Exception)
        {
        }
    }

}

} </pre>
調用方法

private void Main()
(
   / /load music
   MP3Player MP3 = new MP3Player (Properties.Resources.music, Handle);

  / /music start playing   mp3.Open (); )</pre>

 本文由用戶 b5cw 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!