转 .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了 

Android录音并播放(mp3或amr格式)

Android项目中媒体是很多人头疼的一个问题,不仅仅因为处理起来很麻烦,而且不同的手机差别很大(和硬件,系统都有关系),今天就总结一下Android中的录音和播放,可保存成mp3或amr格式。 小米...
  • u010918416
  • u010918416
  • 2016年07月19日 13:40
  • 11327

VC中播放mp3文件的方法

http://blog.csdn.net/skilledprogrammer/article/details/5876602
  • milanleon
  • milanleon
  • 2014年02月26日 15:56
  • 1491

unity3d 直接播放mp3

unity3d 直接播放mp3 显示封面 using UnityEngine; using System.Collections; using Id3Lib; using NAudio.Wave; u...
  • AWNUXCVBN
  • AWNUXCVBN
  • 2016年02月18日 15:26
  • 4714

Asp.Net音频文件上传和播放

一、音频文件上传和播放        在网上找到一个名叫AspNetPager的第三方控件,将AspNetPager.dll文件引用到项目的Bin中。在网页中可直接调用。引用命名空间  usin...
  • shuzhiguoxing
  • shuzhiguoxing
  • 2015年02月10日 11:20
  • 1638

录音播放系统(实现pcm转码mp3,wav)

本文介绍了基于waveX低级音频API采集音频,然后播放的技术,也支持实时的播放。对于将录音和播放分开的做法原因是为了保存pcm文件(未经压缩过的音频文件), 然后转码wav和mp3格式。 PCM...
  • Always__
  • Always__
  • 2017年03月01日 01:39
  • 1276

使用DirectSound播放MP3文件

http://www.cppblog.com/codejie/archive/2009/03/26/77916.html 使用DirectSound播放MP3文件     将对...
  • woshiyuanlei
  • woshiyuanlei
  • 2015年06月02日 23:02
  • 591

Java实现音频格式转换 WAV—mp3,可使音频压缩

http://www.xuebuyuan.com/1749979.html 最近做的一个小项目中,师兄安排的任务,要实现录音然后保存文件,实现网络传输,然后我用初学的java实现了一...
  • u011537073
  • u011537073
  • 2016年04月25日 10:53
  • 2477

我的Android进阶之旅------>Android MediaPlayer播放mp3的实例--简易mp3播放器

大家好我们今天研究的是Android中很重要也最为复杂的媒体播放器---MediaPlayer. Android的MediaPlayer包含了Audio和video的播放功能,在Android的界面...
  • qq446282412
  • qq446282412
  • 2013年04月09日 14:47
  • 15904

MP3 Lame 转换 参数 设置(转)

我们在对音频格式的转换中,打交道最多的就是MP3了。如果你能彻底玩转MP3,那么对你的音频创作和对其他音频格式的掌握会有很大的帮助。下面我们给大家介绍MP3制作软件:LAME   要制作出高音质的M...
  • deerleaper
  • deerleaper
  • 2014年09月16日 15:02
  • 3504

用DELPHI写的播放器核心代码,播放MP3无压力

主窗口代码: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Con...
  • tcmakebest
  • tcmakebest
  • 2013年12月14日 17:03
  • 1156
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:转 .net上播放MP3
举报原因:
原因补充:

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