C#播放MP3音乐文件
来源:互联网 发布:知乎 粮食 编辑:程序博客网 时间:2024/05/01 19:44
网上搜集调整,测试通过。
记录
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 = 260)] private string Name = ""; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)] private string durLength = ""; [MarshalAs(UnmanagedType.LPTStr, SizeConst = 128)] private string TemStr = ""; int ilong; //定义播放状态枚举变量 public enum State { mPlaying = 1, mPuase = 2, mStop = 3 }; //结构变量 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(127, Convert.ToChar(" ")); Name = ""; Name = Name.PadLeft(260, 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(34) + Name + Convert.ToChar(34) + " alias media"; ilong = APIClass.mciSendString("close all", TemStr, TemStr.Length, 0); ilong = APIClass.mciSendString(Name, TemStr, TemStr.Length, 0); ilong = APIClass.mciSendString("set media time format milliseconds", TemStr, TemStr.Length, 0); mc.state = State.mStop; } catch { } } } //播放 public void play() { TemStr = ""; TemStr = TemStr.PadLeft(127, Convert.ToChar(" ")); APIClass.mciSendString("play media", TemStr, TemStr.Length, 0); mc.state = State.mPlaying; } public void StopT() { TemStr = ""; TemStr = TemStr.PadLeft(128, Convert.ToChar(" ")); ilong = APIClass.mciSendString("close media", TemStr, 128, 0); ilong = APIClass.mciSendString("close all", TemStr, 128, 0); ilong = APIClass.mciSendString(Name, TemStr, TemStr.Length, 0); //ilong = APIClass.mciSendString("set media time format milliseconds", TemStr, TemStr.Length, 0); mc.state = State.mStop; } public void Puase() { TemStr = ""; TemStr = TemStr.PadLeft(128, Convert.ToChar(" ")); ilong = APIClass.mciSendString("pause media", TemStr, TemStr.Length, 0); mc.state = State.mPuase; } private string GetCurrPath(string name) { if (name.Length < 1) return ""; name = name.Trim(); name = name.Substring(0, name.Length - 1); return name; } //总时间 public int Duration { get { durLength = ""; durLength = durLength.PadLeft(128, Convert.ToChar(" ")); APIClass.mciSendString("status media length", durLength, durLength.Length, 0); durLength = durLength.Trim(); if (durLength == "") return 0; return (int)(Convert.ToDouble(durLength) / 1000f); } } //当前时间 public int CurrentPosition { get { durLength = ""; durLength = durLength.PadLeft(128, Convert.ToChar(" ")); APIClass.mciSendString("status media position", durLength, durLength.Length, 0); durLength = durLength.Trim(); if (durLength == "") { return mc.iPos = 0; } mc.iPos = unchecked((int)(Convert.ToInt32(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 ); }}
- C#播放MP3音乐文件
- Mp3Player播放MP3音乐文件
- java播放MP3/APE音乐文件
- C#后台播放音乐文件
- 使用MediaPlayer控件播放MP3等音乐文件
- VC用MCI播放mp3等音乐文件
- C#播放wav,MP3
- C# 播放MP3文件
- C# 播放mp3
- c#播放mp3总结
- c# 播放mp3
- c# 播放mp3
- 播放音乐文件
- 关于如何手动使安装MP3插件使Rhythmbox支持MP3格式音乐文件的播放
- C#播放MP3的类
- C#播放MP3的类
- C#播放MP3的类
- C#播放MP3的类
- maven配置
- c# 磁盘调度算法:-最短寻道时间优先
- linux下查看所有用户及所有用户组
- FTP协议
- 手上青春还剩多少
- C#播放MP3音乐文件
- 配置GDB以支持查看stl容器数据
- Ubuntu 12.04安装Java开发环境
- Java学习笔记25:Java中MD5使用
- libgdx 与 android studio
- Java 学习笔记14:Spring 数据库数据源DBCP配置说明
- 系统支持的集中对话框
- 解决PLSQL查不到带中文条件的记录
- DevExpress右键菜单使用小记