新聞中心

EEPW首頁 > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > C#中用API實(shí)現(xiàn)MP3等音頻文件的播放類

C#中用API實(shí)現(xiàn)MP3等音頻文件的播放類

作者: 時(shí)間:2009-06-15 來源:網(wǎng)絡(luò) 收藏
沒有提供的類,要編寫程序,必須使用第三方控件或類。本文使用函數(shù)mciSendString,編寫一個(gè)的類。

具體源碼如下:

本文引用地址:http://butianyuan.cn/article/166946.htm

一、使用函數(shù)mciSendString構(gòu)成的媒體播放類。

using System;

using System.Runtime.InteropServices;

using System.Text;

using System.IO ;

namespace clsMCIPlay

{

  ///

  /// clsMci 的摘要說明。

  ///

  public class clsMCI

  {

public clsMCI()

{

  //

  // TODO: 在此處添加構(gòu)造函數(shù)邏輯

  //

}

//定義函數(shù)使用的字符串變量

[MarshalAs(Unmana

gedType.ByValTStr,SizeConst=260)]

private string Name = ;

[MarshalAs(UnmanagedType.ByValTStr,SizeConst=128)]

private string durLength = ;

[MarshalAs(UnmanagedType.LPTStr,SizeConst=128)]

private string TemStr =;

int ilong;

//定義播放狀態(tài)枚舉變量

public enum State

{

  mPlaying = 1,

  mPuase = 2,

  mStop = 3

};

//結(jié)構(gòu)變量

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

{

  MessageBox.Show(出錯(cuò)錯(cuò)誤!);

}

  }

}

//播放

public void play()

{

  TemStr = ;

  TemStr = TemStr.PadLeft(127,Convert.ToChar( ));

  APIClass.mciSendString(play media, TemStr, TemStr.Length , 0);

  mc.state = State.mPlaying ;

}

//停止


上一頁 1 2 下一頁

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉