播放多媒体文件.docx

上传人:b****0 文档编号:9448289 上传时间:2023-05-19 格式:DOCX 页数:25 大小:20.30KB
下载 相关 举报
播放多媒体文件.docx_第1页
第1页 / 共25页
播放多媒体文件.docx_第2页
第2页 / 共25页
播放多媒体文件.docx_第3页
第3页 / 共25页
播放多媒体文件.docx_第4页
第4页 / 共25页
播放多媒体文件.docx_第5页
第5页 / 共25页
播放多媒体文件.docx_第6页
第6页 / 共25页
播放多媒体文件.docx_第7页
第7页 / 共25页
播放多媒体文件.docx_第8页
第8页 / 共25页
播放多媒体文件.docx_第9页
第9页 / 共25页
播放多媒体文件.docx_第10页
第10页 / 共25页
播放多媒体文件.docx_第11页
第11页 / 共25页
播放多媒体文件.docx_第12页
第12页 / 共25页
播放多媒体文件.docx_第13页
第13页 / 共25页
播放多媒体文件.docx_第14页
第14页 / 共25页
播放多媒体文件.docx_第15页
第15页 / 共25页
播放多媒体文件.docx_第16页
第16页 / 共25页
播放多媒体文件.docx_第17页
第17页 / 共25页
播放多媒体文件.docx_第18页
第18页 / 共25页
播放多媒体文件.docx_第19页
第19页 / 共25页
播放多媒体文件.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

播放多媒体文件.docx

《播放多媒体文件.docx》由会员分享,可在线阅读,更多相关《播放多媒体文件.docx(25页珍藏版)》请在冰点文库上搜索。

播放多媒体文件.docx

播放多媒体文件

添加MP3的标签信息

usingSystem;

usingSystem.IO;

namespacemp3infons

{

classMP3Info

{

structMP3InfoStruct

{

publicstringMP3Flag;

publicstringTitle;

publicstringSinger;

publicstringAlbum;

publicstringYear;

publicstringComment;

}

privatestringMP3File;

MP3InfoStructmp3struct;

publicMP3Info(stringMP3Name)

{

MP3File=MP3Name;

mp3struct=newMP3InfoStruct();

}

publicboolreadMP3Info()

{

boolisSet=false;

byte[]b=newbyte[128];

try

{

FileStreamfs=newFileStream(MP3File,FileMode.Open);

fs.Seek(-128,SeekOrigin.End);

fs.Read(b,0,128);

mp3struct.MP3Flag=System.Text.Encoding.Default.GetString(b,0,3);

if(mp3struct.MP3Flag.CompareTo("TAG")==0)

{

//检查是否设置了标签

isSet=true;

mp3struct.Title=System.Text.Encoding.Default.GetString(b,3,30);

mp3struct.Singer=System.Text.Encoding.Default.GetString(b,33,30);

mp3struct.Album=System.Text.Encoding.Default.GetString(b,63,30);

mp3struct.Year=System.Text.Encoding.Default.GetString(b,93,4);

mp3struct.Comment=System.Text.Encoding.Default.GetString(b,97,30);

}

fs.Close();

}

catch(Exceptione)

{

System.Console.WriteLine(e.Message);

}

returnisSet;

}

publicvoidprintMP3Info()

{

System.Console.WriteLine("MP3附加信息:

");

System.Console.WriteLine("-----------------------------");

System.Console.WriteLine("标题:

"+mp3struct.Title);

System.Console.WriteLine("歌手:

"+mp3struct.Singer);

System.Console.WriteLine("唱片集:

"+mp3struct.Album);

System.Console.WriteLine("出版期:

"+mp3struct.Year);

System.Console.WriteLine("备 注:

"+mp3struct.Comment);

}

}

publicclassMainMP3

{

staticvoidMain(string[]args)

{

if(args.Length==1)

{

MP3Infomp3=newMP3Info(args[0]);

boolf=mp3.readMP3Info();

if(f)

{

mp3.printMP3Info();

}

else

{

System.Console.WriteLine("该MP3没有标注");

}

}

else

{

System.Console.WriteLine("参数不正确,只能跟一个参数");

}

}

}

}

播放MP3

C#没有提供播放MP3等音频文件的类,要编写播放MP3等音频文件程序,必须使用第三方控件或类。

本文使用API函数mciSendString,编写一个播放MP3等音频文件的类。

  具体源码如下:

  一、使用API函数mciSendString构成的媒体播放类。

程序代码

usingSystem;

usingSystem.Runtime.InteropServices;

usingSystem.Text;

usingSystem.IO;

namespaceclsMCIPlay

{

 ///

 ///clsMci的摘要说明。

 ///

 publicclassclsMCI

 {

  publicclsMCI()

  {

   //

   //TODO:

在此处添加构造函数逻辑

   //

  }

  //定义API函数使用的字符串变量

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

  privatestringName="";

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

  privatestringdurLength="";

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

  privatestringTemStr="";

  intilong;

  //定义播放状态枚举变量

  publicenumState

  {

   mPlaying=1,

   mPuase=2,

   mStop=3

  };

  //结构变量

  publicstructstructMCI

  {

   publicboolbMut;

   publicintiDur;

   publicintiPos;

   publicintiVol;

   publicintiBal;

   publicstringiName;

   publicStatestate;

  };

  publicstructMCImc=newstructMCI();

  //取得播放文件属性

  publicstringFileName

  {

   get

   {

    returnmc.iName;

   }

   set

   {

    //ASCIIEncodingasc=newASCIIEncoding();

    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)+"aliasmedia";

     Name="open"+Convert.ToChar(34)+Name+Convert.ToChar(34)+"aliasmedia";

     ilong=APIClass.mciSendString("closeall",TemStr,TemStr.Length,0);

     ilong=APIClass.mciSendString(Name,TemStr,TemStr.Length,0);

     ilong=APIClass.mciSendString("setmediatimeformatmilliseconds",TemStr,TemStr.Length,0);

     mc.state=State.mStop;

    }

    catch

    {

     MessageBox.Show("出错错误!

");

    }

   }

  }

  //播放

  publicvoidplay()

  {

   TemStr="";

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

   APIClass.mciSendString("playmedia",TemStr,TemStr.Length,0);

   mc.state=State.mPlaying;

  }

  //停止

  publicvoidStopT()

  {

   TemStr="";

   TemStr=TemStr.PadLeft(128,Convert.ToChar(""));

   ilong=APIClass.mciSendString("closemedia",TemStr,128,0);

   ilong=APIClass.mciSendString("closeall",TemStr,128,0);

   mc.state=State.mStop;

  }

  publicvoidPuase()

  {

   TemStr="";

   TemStr=TemStr.PadLeft(128,Convert.ToChar(""));

   ilong=APIClass.mciSendString("pausemedia",TemStr,TemStr.Length,0);

   mc.state=State.mPuase;

  }

  privatestringGetCurrPath(stringname)

  {

   if(name.Length<1)return"";

   name=name.Trim();

   name=name.Substring(0,name.Length-1);

   returnname;

  }

  //总时间

  publicintDuration

  {

   get

   {

    durLength="";

    durLength=durLength.PadLeft(128,Convert.ToChar(""));

    APIClass.mciSendString("statusmedialength",durLength,durLength.Length,0);

    durLength=durLength.Trim();

    if(durLength=="")return0;

    return(int)(Convert.ToDouble(durLength)/1000f);

   }

  }

  //当前时间

  publicintCurrentPosition

  {

   get

   {

    durLength="";

    durLength=durLength.PadLeft(128,Convert.ToChar(""));

    APIClass.mciSendString("statusmediaposition",durLength,durLength.Length,0);

    mc.iPos=(int)(Convert.ToDouble(durLength)/1000f);

    returnmc.iPos;

   }

  }

 }

 publicclassAPIClass

 {

  [DllImport("kernel32.dll",CharSet=CharSet.Auto)]

  publicstaticexternintGetShortPathName(

   stringlpszLongPath,

   stringshortFile,

   intcchBuffer

  );

  [DllImport("winmm.dll",EntryPoint="mciSendString",CharSet=CharSet.Auto)]

  publicstaticexternintmciSendString(

   stringlpstrCommand,

   stringlpstrReturnString,

   intuReturnLength,

   inthwndCallback

  );

 }

}

 

播放视频

网页播放的视频代码

第一种是通过调用windowmediaplayer进行播放诸如:

wmv,asf等格式文件:

22d6f312-b0f6-11d0-94ab-0080c74c7e95height=320id=MediaPlayerwidth=356>

 

第二种是通过调用replayer进行播放诸如:

rm,ram等格式文件

播放框:

CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFAheight=285id=RAOCXname=rmplaywidth=356>

";width="356"height="285">

 

控制框:

可紧跟播放框一起

CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFAheight=27id=video1width=356>

第三种是通过调用flashplayer进行播放:

swf类的flash文档,分别如下:

D27CDB6E-AE6D-11cf-96B8-444553540000"codebase="width="356"height=320>

type="application/x-shockwave-flash"width="356"height=320>

在线播放各种格式媒体

autostart="true"loop="true"width="200"height="150">

把这个网址.tw/Aboutmedia/warner/mtv/naying-021011_01v_120k.wmv换成你要看的电影就行了

有图像的rm格式:

CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA'height=288id=video1width=305VIEWASTEXT>

无图像的rm格式:

如相声,歌曲。

CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA'>

//210.242.69.206/ramgen/broadcast/BCC/encoder/hipop.rm'>

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2