.net上播放MP3

最近在做一个监控项目的时候要求在监控的时候可以采用声音告警,如果用的是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了。
 

时间: 2024-10-27 20:50:55

.net上播放MP3的相关文章

网页上播放mp3或flash的js代码

先来介绍media player控制,对应控件 <object classid="clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6"  后面我们会有讲到. 例1  代码如下 复制代码 <object id="player1" type="application/x-oleobject" height="360" width="300" classid=&quo

标签-jsp和html播放mp3的问题

问题描述 jsp和html播放mp3的问题 <object classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" height="320" id="MediaPlayer1" width="310"> <param name="AutoStart" value="-1"> <param name="

[j2me]利用JLayerME-CLDC0.2播放MP3的试验[1]

有一个JLayerME-CLDC0.2,专门是用来在CLDC1.0/MIDP2.0上播放MP3文件以及获取mp3文件的位速/采样率的. JLayerME是自己做解码器解析MP3格式,然后自行转换为wav格式,这个格式是真机都支持的,然后再让Manager.createPlayer进行播放. 所以非常消耗资源. 他们开发者也说,现在的JLayerME-CLDC0.2还不是一个产品. 这个项目在:  Project Homepage :    http://www.javazoom.net/java

c++6 0控制台程序-c++6.0控制台程序,使用mcisendstring函数播放mp3文件,没有声音

问题描述 c++6.0控制台程序,使用mcisendstring函数播放mp3文件,没有声音 执行play()函数中,代码: char a[100]=""; char c='1'; while(c!='9') { if(p0==NULL) { printf("找不到可以播放的歌曲n"); return; } printf("开始播放歌曲n"); strcpy(a,""); strcat(a,"open ")

请问j2me 可以 播放 mp3么?

问题描述 请问j2me可以播放mp3么?我想做个词典,可是真人的语音是mp3格式,共有7m左右,各位告诉我怎么做啊?另,音标用什么字体才能显示在手机上? 解决方案 解决方案二:可以mp3文件最好转换为其他占空间小的格式.毕竟英标个数也是很多.显示可以用图片代替.做在一张大图上.自己画的时候取相应的区域就行了.解决方案三:应该可以的吧解决方案四:支持的但最好用midi和wav尤其是midi,推荐你用哈关于音标的事你可以绘也可以用图片啦当然用图片效果会好点

asp.net(c#)如何实现播放MP3音乐啊

问题描述 asp.net(c#)如何实现播放MP3音乐啊?请教 解决方案 解决方案二:用网页播放器,网上很多的,找找看吧解决方案三:如果是音视频网站,应采用流媒体服务器,然后在页面的播放器上配置rtsp链接就行了.解决方案四:哥们,先看看这个帖子吧,本打算我自己测试下,可是没时间了.http://www.cnblogs.com/302soft/articles/627869.html解决方案五:呵呵解决方案六:建议百度一下很多这样的问题应该先学着自己解决解决方案七:如果是ASP.NET3.5的话

Android命令行播放MP3音乐

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

android 播放mp3-android 如何播放mp3流

问题描述 android 如何播放mp3流 byte[] mp3Data = ........................................... 这里存的是mp3 byte型数据,如何播放 求解答哦 ps:也或抛给系统自动播放也行啊,如何抛这个数据啊

让Flash课件在VCD上播放

读者:Flash在制作动画方面有很多优势,我们学校的很多老师都在使用Flash制作教学动画.但是我校硬件设施不是很好,很多教室没有配备电脑和投影机,还是原来的电视机+VCD机的模式,如果想在普通教室播放Flash动画似乎有些困难,不知大家能不能帮我解决这个难题. 要想让Flash课件脱离计算机环境,首先我们考虑将Flash动画转换成其他格式,如:AVI格式.然后使用专门的刻录软件将AVI文件刻录成VCD光盘就可以了. 1.当Flash课件制作完成后将其保存,然后导出为AVI文件.方法是:选择"F