代码如下:

 using System;
using System.Runtime.InteropServices;
using System.Text;
using System.IO ;
using System.Windows.Forms;
namespace WindowsApplication7
{
/// <summary>
/// clsMci 的摘要说明。
/// </summary>
 public class clsMCI
{
public clsMCI()
{
//
// TODO: 在此处添加构造函数逻辑
//
  } //定义API函数使用的字符串变量
  [MarshalAs(UnmanagedType.ByValTStr,SizeConst=)]
private string Name = "" ;
[MarshalAs(UnmanagedType.ByValTStr,SizeConst=)]
private string durLength = "" ;
[MarshalAs(UnmanagedType.LPTStr,SizeConst=)]
private string TemStr ="";
int ilong;
//定义播放状态枚举变量
  public enum State
{
mPlaying = ,
mPuase = ,
mStop =
};
//结构变量
  public struct structMCI
{
public bool bMut;
public int iDur;
public int iPos;
public int iVol;
public int iBal;
public string iName;
public State state;
}; public structMCI mc =new structMCI() ; //取得播放文件属性
  public string FileName
{
get
{
return mc.iName;
}
set
{
//ASCIIEncoding asc = new ASCIIEncoding();
    try
{
TemStr ="";
TemStr = TemStr.PadLeft(,Convert.ToChar(" "));
Name = Name.PadLeft(,Convert.ToChar(" ")) ;
mc.iName = value;
ilong = APIClass.GetShortPathName(mc.iName,Name, Name.Length);
Name = GetCurrPath(Name);
//Name = "open " + Convert.ToChar(34) + Name + Convert.ToChar(34) + " alias media";
     Name = "open " + Convert.ToChar() + Name + Convert.ToChar() + " alias media";
ilong = APIClass.mciSendString("close all", TemStr, TemStr.Length , );
ilong = APIClass.mciSendString( Name, TemStr, TemStr.Length, );
ilong = APIClass.mciSendString("set media time format milliseconds", TemStr, TemStr.Length , );
mc.state = State.mStop;
}
catch
{
}
}
}
//播放 http://sosoft.cnblogs.com/
  public void play()
{
TemStr = "";
TemStr = TemStr.PadLeft(,Convert.ToChar(" "));
APIClass.mciSendString("play media", TemStr, TemStr.Length , );
mc.state = State.mPlaying ;
}
//停止
  public void StopT()
{
TemStr = "";
TemStr = TemStr.PadLeft(,Convert.ToChar(" "));
ilong = APIClass.mciSendString("close media", TemStr, , );
ilong = APIClass.mciSendString("close all", TemStr, , );
mc.state = State.mStop ;
} public void Puase()
{
TemStr = "";
TemStr = TemStr.PadLeft(,Convert.ToChar(" "));
ilong = APIClass.mciSendString("pause media", TemStr, TemStr.Length, );
mc.state = State.mPuase ;
}
private string GetCurrPath(string name)
{
if(name.Length <) return "";
name = name.Trim();
name = name.Substring(,name.Length-);
return name;
}
//总时间
  public int Duration
{
get
{
durLength = "";
durLength = durLength.PadLeft(,Convert.ToChar(" ")) ;
APIClass.mciSendString("status media length", durLength, durLength.Length, );
durLength = durLength.Trim();
if(durLength == "") return ;
return (int)(Convert.ToDouble(durLength) / 1000f);
}
} //当前时间
  public int CurrentPosition
{
get
{
durLength = "";
durLength = durLength.PadLeft(,Convert.ToChar(" ")) ;
APIClass.mciSendString("status media position", durLength, durLength.Length, );
mc.iPos = (int)(Convert.ToDouble(durLength) / 1000f);
return mc.iPos;
}
}
} public class APIClass
{
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
public static extern int GetShortPathName (
string lpszLongPath,
string shortFile,
int cchBuffer
); [DllImport("winmm.dll", EntryPoint="mciSendString", CharSet = CharSet.Auto)]
public static extern int mciSendString (
string lpstrCommand,
string lpstrReturnString,
int uReturnLength,
int hwndCallback
);
}
} clsMCI cm = new clsMCI();
cm.FileName = "keleyi.mp3";//文件名
cm.play();

C#播放MP3源代码的更多相关文章

  1. 使用openal与mpg123播放MP3,附带工程文件(转)

    使用openal与mpg123播放MP3,附带工程文件 使用openal和mpg123播放MP3文件 使用静态编译,相关文件都在附件里 相关工程文件:openal_mpg123_player.7z 使 ...

  2. Rhybox播放mp3, smplayer如何播放flv等等

    [[ 支持mp3,在终端: sudo apt-get install gstreamer0.10-*plugins-ugly 支持wma,在终端: sudo apt-get install gstre ...

  3. 读取SD卡文件夹下的MP3文件和播放MP3文件

    首先获取SD卡path路径下的所有的MP3文件,并将文件名和文件大小存入List数组(此代码定义在FileUtils类中): /** * 读取目录中的Mp3文件的名字和大小 */ public Lis ...

  4. 遭遇flash播放mp3诡异问题

    在部分ie10+flash player 播放mp3,播放第二句话时,中断无法正常播放,(客户的机器上),自己公司的机器测试了几个,都没发现这个问题.其它浏览器(chrome,firefox)也没发现 ...

  5. Android命令行播放MP3音乐

    /*************************************************************************** * Android命令行播放MP3音乐 * 说 ...

  6. ios开发——实用技术篇Swift篇&播放MP3

    播放MP3 // MARK: - 播放MP3 /*----- mp3 ------*/ //定时器- func updateTime() { //获取音频播放器播放的进度,单位秒 var cuTime ...

  7. 在C语言控制台程序中播放MP3音乐

    游戏没有声音多单调. 这里做一个简单的范例,用 mciSendString 函数播放 MP3 格式的音乐,先看看代码吧: // 编译该范例前,请把 background.mp3 放在项目文件夹中 // ...

  8. ubuntu 13.10 Rhythmbox不能播放mp3 和中文乱码的问题

    1.ubuntu 13.10 Rhythmbox不能播放mp3的解决方法 软件中心搜索(ubuntu额外的版权受限软件)不带括号 2.中文乱码问题解决方法: 终端顺序操作 : 1.  sudo ged ...

  9. Ionic2 播放mp3功能实现

    在开发app的过程中有需要播放mp3的功能,一直想实现,但苦于具体的困难一直未能实现,经过一段时间的资料查询和测试,最终摸索出来,现记录如下: 1.最重要的是安装第三方插件ionic-audio,开源 ...

随机推荐

  1. 安卓刷机--fastboot线刷

    首先需要下载fastboot.exe,copy到system32文件夹下. 对于安卓系统的智能手机,同时按住开机键和音量减键,或手机连上电脑,输入adb reboot bootloader进入fast ...

  2. 安装SQL Server2016正式版

    安装SQL Server2016正式版 今天终于有时间安装SQL Server2016正式版,下载那个安装包都用了一个星期 安装包可以从这里下载: http://www.itellyou.cn/ ht ...

  3. Xamarin.Forms 免费电子书

    Xamarin Evolve 正在举行,现在已经放出2本免费的Xamarin.Forms 免费电子书,据现场的同学说这两天还有Xamarin.Forms 重磅消息发布: Creating Mobile ...

  4. Linux堆内存管理深入分析(上)

    Linux堆内存管理深入分析(上半部) 作者:走位@阿里聚安全   0 前言 近年来,漏洞挖掘越来越火,各种漏洞挖掘.利用的分析文章层出不穷.从大方向来看,主要有基于栈溢出的漏洞利用和基于堆溢出的漏洞 ...

  5. 【BOOM】一款有趣的Javascript动画效果

    实践出真知,有的时候看到一些有趣的现象就想着用自己所学的知识复现一下.    boomJS 缘起 前几天在 github 上看到同事的一个这样的小项目,在 IOS 上实现了这样一个小动画效果,看上去蛮 ...

  6. 剑指Offer面试题:3.替换空格

    一.题目:替换空格 题目:请实现一个函数,把字符串中的每个空格替换成"%20".例如输入“We are happy.”,则输出“We%20are%20happy.”. 在网络编程中 ...

  7. 备忘录--关于线程和IO知识

    因为自己还在出差中,没时间深入学习,最近工作里又有对一些技术的思考,所以这里记录下来,等回去有时间可以按照这个思路进行学习,这里主要起到备忘的作用. 1.线程难学难在我们没有理解操作系统里的线程设计机 ...

  8. 在C#代码中应用Log4Net(一)简单使用Log4Net

    首先让我们先把Log4Net跑起来,示例代码在文章最后面可以下载 1.先把Log4Net引入到工程中,为了演示方便,我们先建立一个winform程序.在程序的根目录下面,建立一个Libs文件夹,以便存 ...

  9. ASP.NET MVC 路由(一)

    ASP.NET MVC路由(一) 前言 从这一章开始,我们即将进入MVC的世界,在学习MVC的过程中在网上搜索了一下,资料还是蛮多的,只不过对于我这样的初学者来看还是有点难度,自己就想看到有一篇引导性 ...

  10. 【干货】JS版汉字与拼音互转终极方案,附简单的JS拼音输入法

    前言 网上关于JS实现汉字和拼音互转的文章很多,但是比较杂乱,都是互相抄来抄去,而且有的不支持多音字,有的不支持声调,有的字典文件太大,还比如有时候我仅仅是需要获取汉字拼音首字母却要引入200kb的字 ...