新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > C#中用API實現MP3等音頻文件的播放類

        C#中用API實現MP3等音頻文件的播放類

        作者: 時間:2009-06-15 來源:網絡 收藏
        沒有提供的類,要編寫程序,必須使用第三方控件或類。本文使用函數mciSendString,編寫一個的類。

        具體源碼如下:

        本文引用地址:http://www.104case.com/article/166946.htm

        一、使用函數mciSendString構成的媒體播放類。

        using System;

        using System.Runtime.InteropServices;

        using System.Text;

        using System.IO ;

        namespace clsMCIPlay

        {

          ///

          /// clsMci 的摘要說明。

          ///

          public class clsMCI

          {

        public clsMCI()

        {

          //

          // TODO: 在此處添加構造函數邏輯

          //

        }

        //定義函數使用的字符串變量

        [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;

        //定義播放狀態枚舉變量

        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.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(出錯錯誤!);

        }

          }

        }

        //播放

        public void play()

        {

          TemStr = ;

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

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

          mc.state = State.mPlaying ;

        }

        //停止


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 凤城市| 资溪县| 东安县| 徐州市| 襄樊市| 许昌县| 广安市| 宜州市| 灵寿县| 扬中市| 饶平县| 沂南县| 昭苏县| 湖南省| 呼图壁县| 平利县| 武清区| 峡江县| 南京市| 广东省| 金溪县| 商水县| 易门县| 纳雍县| 云安县| 肥东县| 忻州市| 卓资县| 安塞县| 南充市| 青阳县| 临城县| 长垣县| 伊金霍洛旗| 沧源| 陆川县| 安图县| 广州市| 花莲市| 绥中县| 武隆县|