C# MP3操作類

來源:互聯網
上載者:User

能播放指定的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;

/************************************************************************************************************************************
* * 檔案名稱 :
* * 聲明 :
* * 建立者 : 黃聰
* * 建立日期 : 2009.10.8
* * 修改者 : 黃聰
* * 最新修改日期 : 2009.10.8
************************************************************************************************************************************/
namespace Tool
{
/********************************************************************************************************************************
* * 類名 :
* * 聲明 :
* * 建立者 : 黃聰
* * 建立日期 : 2009.7.15
* * 修改者 : 黃聰
* * 最新修改日期 : 2009.7.15
********************************************************************************************************************************/
public class Mp3Player
{
#region - 屬性 -
[DllImport("winmm.dll")]
static extern Int32 mciSendString(String command,
StringBuilder buffer, Int32 bufferSize, IntPtr hwndCallback);

/// <summary>
/// 臨時音樂檔案存放處
/// </summary>
private string m_musicPath = "";

/// <summary>
/// 父表單控制代碼
/// </summary>
private IntPtr m_Handle;
#endregion

#region - 建構函式 -
/// <summary>
/// 建立Mp3播放類
/// </summary>
/// <param name="music">嵌入的音樂檔案</param>
/// <param name="path">臨時音樂檔案儲存路徑</param>
/// <param name="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>
/// 建立Mp3播放類
/// </summary>
/// <param name="musicPath">要播放的mp3檔案路徑</param>
/// <param name="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)
{

}

#endregion

#region - 播放音樂 -
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);
}
#endregion

#region - 停止音樂播放 -
void CloseMedia()
{
try
{
mciSendString("close all", null, 0, m_Handle);
}
catch (Exception)
{
}
}
#endregion
}
}

 

1.將MP3檔案匯入到VS中,並且設定為內嵌資源:

 

MP3檔案

 

2.匯入到資源中,C#中視MP3為檔案類型,以Byte[]形式儲存:

 

3.將該MP3檔案設定為內嵌資源:

 

4.最後建立一個新的表單工程,在Load事件中調用Mp3類的方法即可播放音樂:

 

private void FormMain_Load(object sender, EventArgs e)
{   //載入音樂   Mp3Player mp3 = new Mp3Player(Properties.Resources.music, Handle);

  //音樂開始播放   mp3.Open();
}

 

轉自:http://www.cnblogs.com/Leo_wl/archive/2010/05/27/1745637.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.