C#播放MP3源代码

代码如下:

  1 using System;
  2 using System.Runtime.InteropServices;
  3 using System.Text;
  4 using System.IO ;
  5 using System.Windows.Forms;
  6 namespace WindowsApplication7
  7 {
  8 /// <summary>
  9 /// clsMci 的摘要说明。
 10 /// </summary>
 11  public class clsMCI
 12 {
 13 public clsMCI()
 14 {
 15 //
 16 // TODO: 在此处添加构造函数逻辑
 17 //
 18   }
 19
 20 //定义API函数使用的字符串变量
 21   [MarshalAs(UnmanagedType.ByValTStr,SizeConst=260)]
 22 private string Name = "" ;
 23 [MarshalAs(UnmanagedType.ByValTStr,SizeConst=128)]
 24 private string durLength = "" ;
 25 [MarshalAs(UnmanagedType.LPTStr,SizeConst=128)]
 26 private string TemStr ="";
 27 int ilong;
 28 //定义播放状态枚举变量
 29   public enum State
 30 {
 31 mPlaying = 1,
 32 mPuase = 2,
 33 mStop = 3
 34 };
 35 //结构变量
 36   public struct structMCI
 37 {
 38 public bool bMut;
 39 public int iDur;
 40 public int iPos;
 41 public int iVol;
 42 public int iBal;
 43 public string iName;
 44 public State state;
 45 };
 46
 47 public structMCI mc =new structMCI() ;
 48
 49 //取得播放文件属性
 50   public string FileName
 51 {
 52 get
 53 {
 54 return mc.iName;
 55 }
 56 set
 57 {
 58 //ASCIIEncoding asc = new ASCIIEncoding();
 59     try
 60 {
 61 TemStr ="";
 62 TemStr = TemStr.PadLeft(127,Convert.ToChar(" "));
 63 Name = Name.PadLeft(260,Convert.ToChar(" ")) ;
 64 mc.iName = value;
 65 ilong = APIClass.GetShortPathName(mc.iName,Name, Name.Length);
 66 Name = GetCurrPath(Name);
 67 //Name = "open " + Convert.ToChar(34) + Name + Convert.ToChar(34) + " alias media";
 68      Name = "open " + Convert.ToChar(34) + Name + Convert.ToChar(34) + " alias media";
 69 ilong = APIClass.mciSendString("close all", TemStr, TemStr.Length , 0);
 70 ilong = APIClass.mciSendString( Name, TemStr, TemStr.Length, 0);
 71 ilong = APIClass.mciSendString("set media time format milliseconds", TemStr, TemStr.Length , 0);
 72 mc.state = State.mStop;
 73 }
 74 catch
 75 {
 76 }
 77 }
 78 }
 79 //播放  http://sosoft.cnblogs.com/
 80   public void play()
 81 {
 82 TemStr = "";
 83 TemStr = TemStr.PadLeft(127,Convert.ToChar(" "));
 84 APIClass.mciSendString("play media", TemStr, TemStr.Length , 0);
 85 mc.state = State.mPlaying ;
 86 }
 87 //停止
 88   public void StopT()
 89 {
 90 TemStr = "";
 91 TemStr = TemStr.PadLeft(128,Convert.ToChar(" "));
 92 ilong = APIClass.mciSendString("close media", TemStr, 128, 0);
 93 ilong = APIClass.mciSendString("close all", TemStr, 128, 0);
 94 mc.state = State.mStop ;
 95 }
 96
 97 public void Puase()
 98 {
 99 TemStr = "";
100 TemStr = TemStr.PadLeft(128,Convert.ToChar(" "));
101 ilong = APIClass.mciSendString("pause media", TemStr, TemStr.Length, 0);
102 mc.state = State.mPuase ;
103 }
104 private string GetCurrPath(string name)
105 {
106 if(name.Length <1) return "";
107 name = name.Trim();
108 name = name.Substring(0,name.Length-1);
109 return name;
110 }
111 //总时间
112   public int Duration
113 {
114 get
115 {
116 durLength = "";
117 durLength = durLength.PadLeft(128,Convert.ToChar(" ")) ;
118 APIClass.mciSendString("status media length", durLength, durLength.Length, 0);
119 durLength = durLength.Trim();
120 if(durLength == "") return 0;
121 return (int)(Convert.ToDouble(durLength) / 1000f);
122 }
123 }
124
125 //当前时间
126   public int CurrentPosition
127 {
128 get
129 {
130 durLength = "";
131 durLength = durLength.PadLeft(128,Convert.ToChar(" ")) ;
132 APIClass.mciSendString("status media position", durLength, durLength.Length, 0);
133 mc.iPos = (int)(Convert.ToDouble(durLength) / 1000f);
134 return mc.iPos;
135 }
136 }
137 }
138
139 public class APIClass
140 {
141 [DllImport("kernel32.dll", CharSet = CharSet.Auto)]
142 public static extern int GetShortPathName (
143 string lpszLongPath,
144 string shortFile,
145 int cchBuffer
146 );
147
148 [DllImport("winmm.dll", EntryPoint="mciSendString", CharSet = CharSet.Auto)]
149 public static extern int mciSendString (
150 string lpstrCommand,
151 string lpstrReturnString,
152 int uReturnLength,
153 int hwndCallback
154 );
155 }
156 }
157
158
159
160
161
162 clsMCI cm = new clsMCI();
163             cm.FileName = "keleyi.mp3";//文件名
164             cm.play();

C#播放MP3源代码

时间: 2024-10-11 08:55:50

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

扫描SD卡,显示歌曲信息,简单播放MP3,层层低级掌握服务.............

一,在主线程直接完成这一切,app退出,歌曲不播放了....(掌握contentResolver读取media信息和播放mp3) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65

ios开发——实用技术篇Swift篇&amp;播放MP3

播放MP3 1 // MARK: - 播放MP3 2 /*----- mp3 ------*/ 3 //定时器- 4 func updateTime() 5 { 6 //获取音频播放器播放的进度,单位秒 7 var cuTime:Float = Float(audioPlayer.currentTime) 8 9 //更新进度条 10 jinDuSlider.value = cuTime 11 12 //获取总时间 13 var duTime:Float = Float(audioPlayer.

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

1.ubuntu 13.10 Rhythmbox不能播放mp3的解决方法 软件中心搜索(ubuntu额外的版权受限软件)不带括号 2.中文乱码问题解决方法: 终端顺序操作 : 1.  sudo gedit ~/.profile 2. 文件最后加入以下内容 export GST_ID3_TAG_ENCODING=GBK:UTF-8:GB18030 export GST_ID3V2_TAG_ENCODING=GBK:UTF-8:GB18030 保存退出 3. source ~/.profile 4.

转:Centos6.3添加解码器播放MP3和常见视频音频

原文来自于:http://blog.csdn.net/odaynot/article/details/8462273 参考地址: http://wiki.centos.org/AdditionalResources/Repositories/RPMForge RPMForge的dag 软件包列表在这里 http://apt.sw.be/redhat/el5/en/i386/dag/RPMS/ 因为Centos为了避免引起版权问题,所以没有安装外部的解码器.下面来进行手动安装. 以下操作需要有管理

Java播放mp3的方法

介绍:Java自带的播放mp3的方法代码 import javafx.embed.swing.JFXPanel; import javafx.scene.media.Media; import javafx.scene.media.MediaPlayer; import java.io.File; public class main { public static void main(String[] p_args){ // 程序外的本地文件应该使用URI地址 File f = new File

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

首先获取SD卡path路径下的所有的MP3文件,并将文件名和文件大小存入List数组(此代码定义在FileUtils类中): /** * 读取目录中的Mp3文件的名字和大小 */ public List<Mp3Info> getMp3Files(String path) { SDCardRoot = Environment.getExternalStorageDirectory() .getAbsolutePath(); //获取SD卡的路径名 List<Mp3Info> mp3I

CEF3 HTML5 audio标签为什么不能播放mp3格式的音频文件

CEF3 HTML5 audio标签 为什么不能播放mp3格式的音频文件 原因略. 解决方法: 找一个最新版的chrome ,我用的是24版本.路径 C:\Documents and Settings\guo\Local Settings\Application Data\Google\Chrome\Application\24.0.1312.57的下面有一个文件ffmpegsumo.dll. 复制出来,替换掉CEF3的同名文件.就好了.

Android命令行播放MP3音乐

/*************************************************************************** * Android命令行播放MP3音乐 * 说明: * 有时候我们会遇到Touch不能使用,也没有鼠标,但是我们要在Android上测试 * 声卡情况,所以我们会想到在adb或者debug终端上使用命令行来播放声音. * * 2016-5-26 深圳 南山平山村 曾剑锋 *************************************

工业串口触摸屏开发制作mp3播放器,单片机或PLC通过串口控制播放MP3音频方法

在工业控制系统中将音乐或语音MP3的美和工控结合在一起,给人以赏心悦目的感受.随着工业控制的发展,对工业控制的控制要求也越来越高,使得越来越多的控制部分不是指简单的现场控制,还需要增加音乐播放或语音提示,使得控制系统更加人性化. 这里介绍广州易显的工业串口触摸屏或者ARM工控机连接单片机或者PLC,使用工业串口触摸屏开发制作mp3的方法.跟电脑的播放器一样,具有播放,暂停,停止,控制播放进度,上一首,下一首等功能.可以在人机界面上控制播放MP3音乐或者语音提示.也可以使用单片机或PLC控制播放的