转 .net上播放MP3

原创 2007年09月22日 14:13:00
用的是VS那么直接调用Media player好了,可惜自己用的是#Develop做为开发环境。居然不支持com组件的引用。我倒~
于是参照MS API写了下面这个简单的播放类

 

/*
 * Created by SharpDevelop.
 * User: root
 * Date: 2006-8-16
 * Time: 15:44
 *
 * To change this template use Tools | Options | Coding | Edit Standard Headers.
 */

using System;
using System.Runtime.InteropServices;


namespace Com.Music
{
 /// <summary>
 /// 音乐播放类
 /// 参考:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_multimedia_command_strings.asp
 /// </summary>
 public class MusicPlayer
 {
  
  
  
  [DllImport("winmm.dll")]
  private  static extern long mciSendString(string strCommand,
  string strReturn, int iReturnLength, IntPtr hwndCallback);
  
  
  public MusicPlayer()
  {
  }
  //播放器状态
  /*
   *
   * All devices can return the
   * "not ready", "paused", "playing", and "stopped" values.
   * Some devices can return the additional
   * "open", "parked", "recording", and "seeking" values
   *   
   */
  public string Status
  {
  get{
   string sCommand = "status MediaFile mode";
   string  ret="";
   mciSendString(sCommand, ret, 10, IntPtr.Zero);
   return ret.Trim();
   }
  }
  
  private void Open(string sFileName)
  { 
   string sCommand="open /"" + sFileName + "/" type mpegvideo alias MediaFile";  
   //   MediaFile是选择播放文件类型
   string  ret=null;
   mciSendString(sCommand, ret, 0, IntPtr.Zero);           
        }
  //播放音乐
  public void Play(string filename)   
        {
   Open(filename);   
   string sCommand = "play MediaFile";
   string  ret=null;
         mciSendString(sCommand,ret, 0, IntPtr.Zero);
        }
  //停止播放音乐
  public void Stop()
  {  
   string sCommand = "stop MediaFile";
   string  ret=null;
   mciSendString(sCommand, ret, 0, IntPtr.Zero);
  }
  
  public void Pause()
  {  
   string sCommand = "pause MediaFile";
   string  ret=null;
   mciSendString(sCommand, ret, 0, IntPtr.Zero);
  }
  
 }
}

 

播放的话只要一句就搞定
MusicPlayer mp = new MusicPlayer();
void Button1Click(object sender, System.EventArgs e)
  {
       mp.Play("H:/mp3/十七岁的雨季.mp3");   
  }


另外拿这个测试拉下MONO 1.6 beta 还不错开来MONO也开始支持调用OS本地API了 

相关文章推荐

vb.net连续播放MP3源码

  • 2013年06月23日 21:35
  • 203KB
  • 下载

嵌入式GPS语音导航系统中MP3的解码与播放[转]

0 引言  近年来,电子技术的迅猛发展,使得嵌入式系统在越来越广泛的领域得到应用。嵌入式系统平台的功能也越来越强大,复杂度也越来越高,同时对其开发的难度和要求也越来越高。在开发过程中需要将应用软件和系...

asp.net MP3播放器

  • 2008年05月09日 14:25
  • 33KB
  • 下载

3GP/MP4 视频文件格式解析及其播放原理(转)

视频文件格式解析之 3GP/MP4 1. 概述 流行的文件格式背后都有大公司的支持。FLV得益于ADOBE公司推动的网络视频分享风潮,而AVI则是MICROSOFT首创的RIF...

mp3播放器vb.net做的

  • 2010年12月25日 20:55
  • 908B
  • 下载

使用openal与mpg123播放MP3,(转)

使用openal与mpg123播放MP3,附带工程文件(转) 2013-12-09 01:47 本站整理 浏览(5) 使用openal与mpg123播放MP3,附带工程文件 使用open...

MP3播放器_VB.NET_源码

  • 2009年10月15日 11:06
  • 1.53MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:转 .net上播放MP3
举报原因:
原因补充:

(最多只允许输入30个字)