C#播放MP3源代码
代码如下:
- 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源代码的更多相关文章
- 使用openal与mpg123播放MP3,附带工程文件(转)
使用openal与mpg123播放MP3,附带工程文件 使用openal和mpg123播放MP3文件 使用静态编译,相关文件都在附件里 相关工程文件:openal_mpg123_player.7z 使 ...
- Rhybox播放mp3, smplayer如何播放flv等等
[[ 支持mp3,在终端: sudo apt-get install gstreamer0.10-*plugins-ugly 支持wma,在终端: sudo apt-get install gstre ...
- 读取SD卡文件夹下的MP3文件和播放MP3文件
首先获取SD卡path路径下的所有的MP3文件,并将文件名和文件大小存入List数组(此代码定义在FileUtils类中): /** * 读取目录中的Mp3文件的名字和大小 */ public Lis ...
- 遭遇flash播放mp3诡异问题
在部分ie10+flash player 播放mp3,播放第二句话时,中断无法正常播放,(客户的机器上),自己公司的机器测试了几个,都没发现这个问题.其它浏览器(chrome,firefox)也没发现 ...
- Android命令行播放MP3音乐
/*************************************************************************** * Android命令行播放MP3音乐 * 说 ...
- ios开发——实用技术篇Swift篇&播放MP3
播放MP3 // MARK: - 播放MP3 /*----- mp3 ------*/ //定时器- func updateTime() { //获取音频播放器播放的进度,单位秒 var cuTime ...
- 在C语言控制台程序中播放MP3音乐
游戏没有声音多单调. 这里做一个简单的范例,用 mciSendString 函数播放 MP3 格式的音乐,先看看代码吧: // 编译该范例前,请把 background.mp3 放在项目文件夹中 // ...
- ubuntu 13.10 Rhythmbox不能播放mp3 和中文乱码的问题
1.ubuntu 13.10 Rhythmbox不能播放mp3的解决方法 软件中心搜索(ubuntu额外的版权受限软件)不带括号 2.中文乱码问题解决方法: 终端顺序操作 : 1. sudo ged ...
- Ionic2 播放mp3功能实现
在开发app的过程中有需要播放mp3的功能,一直想实现,但苦于具体的困难一直未能实现,经过一段时间的资料查询和测试,最终摸索出来,现记录如下: 1.最重要的是安装第三方插件ionic-audio,开源 ...
随机推荐
- 分布式数据库中的Paxos 算法
分布式数据库中的Paxos 算法 http://baike.baidu.com/link?url=ChmfvtXRZQl7X1VmRU6ypsmZ4b4MbQX1pelw_VenRLnFpq7rMvY ...
- HTML5- Canvas入门(三)
前两章我们掌握了线段.矩形和多边形的绘制方法,今天我们主要是学习如何绘制圆弧和贝塞尔曲线. 圆弧的绘制 圆弧可以理解为一个圆上的某部分线段,在canvas中,绘制一条圆弧的语法如下: ctx.arc( ...
- 收集最好的Mac软件和使用方法
MacBook 初体验 作者是刚从Windows下转到mac时写的,这篇文章对也主要介绍了Mac下开发环境的部署.软件的安装和卸载.常用快捷键.文件系统的介绍. http://liujiacai.ne ...
- MySQL MVCC(多版本并发控制)
概述 为了提高并发MySQL加入了多版本并发控制,它把旧版本记录保存在了共享表空间(undolog),当事务提交之后将重做日志写入磁盘(前提innodb_flush_log_at_trx_commit ...
- %~dp0是什么意思
转载自 www.cnblogs.com/yxsylyh 转载内容如下: cd /D %~dp0的意思如下: 更改当前目录为批处理本身的目录 比如你有个批处理a.bat在D:\qq文件夹下 a.bat内 ...
- SQL Azure (16) 创建PaaS SQL Azure V12数据库
<Windows Azure Platform 系列文章目录> 本文介绍的是国内由世纪互联运维的Azure China 最新的Azure PaaS SQL Database(SQL Azu ...
- 入手Invicta 8926 OB潜水自动机械腕表
前个月前就想入手一款手表了,之前在关注和学习.询问他人选哪样的表好,前些天还在看精工Seiko机械表系列,今凌晨有朋友给我推荐这款Invicta 8926系列手表,我一看便喜欢了. 在网上也是搜索了很 ...
- EF优缺点的理解
原先用的是三层架构中ADO.NET做底层开发,纯手工sql语句拼装.后来遇到一个MVC+EF项目,体会到了EF的强大性. 它是微软封装好一种ADO.NET数据实体模型,将数据库结构以ORM模式映射到应 ...
- vmware 虚拟机通信拿不到 inet addr 的解决办法
我在虚拟机上安装完红帽之后,使用ifconfig命令来看网卡的IP,但是,输入命令之后,eht0里面只有 inet6 addr 而没有 inet addr,不多说,上图. 解决办法如下:打开 虚拟机设 ...
- margin-top失效的解决方法
异常处理汇总-前端系列 http://www.cnblogs.com/dunitian/p/4523015.html 我的是属于这种情况 按照网上的说法,我就是这个现象了 两个层box1和box2,b ...