代码如下:

 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. iphone使用mac上的SOCKS代理

    Step 1. Make sure the SOCKS tunnel on your work computer allows LAN connections so your iPhone/iPod ...

  2. ABP理论学习之设置管理

    返回总目录 本篇目录 介绍 定义设置 获取设置值 更改设置 关于缓存 介绍 每个应用程序都需要存储一些设置信息,然后在应用程序中的某个地方使用这些设置.ABP提供了健壮的基础设施来存储或检索服务端和客 ...

  3. 再看Ajax

    再回顾Ajax相关的内容,再次梳理学习还是很有必要的,尤其是实际的开发中,ajax更是必不可少,仔细学习以便避免不必要的错误. 文章导读: --1.使用XMLHttpRequest---------- ...

  4. RAID 概述

      原创地址:http://www.cnblogs.com/jfzhu/p/3999283.html 转载请注明出处   独立硬盘冗余阵列(RAID, Redundant Array of Indep ...

  5. [翻译] AKKA笔记- ACTORSYSTEM (配置CONFIGURATION 与调度SCHEDULING) - 4(一)

    原文在http://rerun.me/2014/10/06/akka-notes-actorsystem-in-progress/ 像我们前面看到的,我们可以用ActorSystem的actorof方 ...

  6. 《Node即学即用》—— 读后总结

    导图

  7. fir.im Weekly - 暖心的 iOS 持续集成,你值得拥有

    一则利好消息,flow.ci 支持 iOS 项目持续集成,想试试的伙伴去 Gitter群 问问.首批尝鲜用户@阿米amoy 已经用 flow.ci 实现了基本的 iOS 持续集成,并详细记录整个 Bu ...

  8. iOS开发-应用崩溃日志揭秘(一)

    作为一名应用开发者,你是否有过如下经历? 为确保你的应用正确无误,在将其提交到应用商店之前,你必定进行了大量的测试工作.它在你的设备上也运行得很好,但是,上了应用商店后,还是有用户抱怨会闪退 ! 如果 ...

  9. 谈谈StringBuffer和StringBuilder

    (1) 速度 在执行速度方面的比较:StringBuilder > StringBuffer > String ①String 是不可变的对象(String类源码中存放字符的数组被声明为f ...

  10. SmtpClient发邮件时为什么用MailMessage.From而不用MailMessage.Sender

    今天在看C#高级编程(第9版)的时候,在768页看到这样的一段代码 SmtpClient sc = new SmtpClient(); sc.Host = "邮箱服务器地址"; M ...