C# MP3操作类- Leo_wlCnBlogs - 博客园

能播放指定的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
* * 修改者 : 黄聪
* * {zx1}修改日期 : 2009.10.8
***********************************************************************************************************************************
*/
namespace Tool
{
/********************************************************************************************************************************
* * 类名 :
* * 声明 :
* * 创建者 : 黄聪
* * 创建日期 : 2009.7.15
* * 修改者 : 黄聪
* * {zx1}修改日期 : 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.{zh1}创建一个新的窗体工程,在Load事件中调用Mp3类的方法即可播放音乐:

 

 

郑重声明:资讯 【C# MP3操作类- Leo_wlCnBlogs - 博客园】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——