知识大全 C#中利用mediaplayer打造mp3播放器

Posted

篇首语:只愿我永远在爱里,不断地学习,即使悲伤本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 C#中利用mediaplayer打造mp3播放器相关的知识,希望对你有一定的参考价值。

C#中利用mediaplayer打造mp3播放器  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  利用Window Media Player 控件自己做一款小巧的mp 播放器来听音乐 是不是很享受呢?今天刚写出来的 听听mp 感觉还不错哦 闲话少说 进入正题

  Mp 播放器主要完成下列功能:

   添加歌曲 可以添加单个乐曲或者指定文件夹内包括其子文件夹内的所有mp 乐曲到播放列表

   删除指定歌曲或所有歌曲

   播放的控制 包括选择上一首 下一首播放 顺序播放 循环播放和随机播放 循环播放又分单个歌曲的循环播放和所有歌曲的循环播放

  首先建立类player

  public class Player

  

  private WMPLib WindowsMediaPlayer myPlayer;

  private string[] playList;

  private int numOfMusic;

  private int currentPlay;

  public int NumOfMusic

  

  get

    

    return numOfMusic;

    

  

  public WMPLib WMPPlayState playstate

  

  get

  

  return myPlayer playState;

    

  

  public string PlayList(int num)

  

    return playList[num];

  

  public Player(AxWMPLib AxWindowsMediaPlayer mediaPlayer)

  

  myPlayer = mediaPlayer;

  playList = new string[ ];

  numOfMusic = ;

  

  public void AddFile(string path)

  

  if(numOfMusic < )

  

   numOfMusic ++;

  playList[numOfMusic] = path;

    

  

  public void DelFile(int selectNum)

  

   for(int i = selectNum; i <= numOfMusic ; i++)

  

    playList[i] = playList[i + ];

    

  numOfMusic ;

   

  public void play(int selectNum)

  

  myPlayer URL = playList[selectNum];

  currentPlay = selectNum;

  

  public int NextPlay(int type)

  

  /* type = 顺序

  type = 重复播放全部

  type = 重复播放一首

  type = 随机播放

  */

  switch (type)

  

  case :

  currentPlay ++;

  if(currentPlay > numOfMusic)return ;

  else return currentPlay;

  case :

  currentPlay ++;

  if(currentPlay > numOfMusic) return ;

  else return currentPlay;

  case :

  return currentPlay;

  case :

  Random rdm = new Random(unchecked((int)DateTime Now Ticks));

  currentPlay = rdm Next() % numOfMusic;

    if(currentPlay == ) return numOfMusic;

    else return currentPlay;

    default:

  return ;

    

  

 

Player类中包括一个windowsMediaPlayer对象myPlayer 一个存储播放列表的数组playlist 记录歌曲总数的 numOfMusic 以及当前播放的歌曲对应列表中的序号currentplay;另外有四个方法分别是Play AddFile DelFile 以及获得下次播放序号的NextPlay

 

分功能列出其他主要代码

 

添加单个歌曲

 

  if(this openFileDialog ShowDialog() == DialogResult OK)

  

  string path = this openFileDialog FileName;

  FileInfo f = new FileInfo(path);

  MyPlayer AddFile(f FullName);

  string STRFILE = Convert ToString(MyPlayer NumOfMusic);

  for(int i = ;i<= STRFILE Length;i++)STRFILE+= ;

  STRFILE += f Name;

  this listBox Items Add(STRFILE);

 

添加一个文件夹及其所有子文件夹的歌曲

 

利用递归函数showfiles实现所有层歌曲都添加到歌曲列表中

 

  private void showfiles(string path ListBox listBox )

  

  DirectoryInfo dir = new DirectoryInfo(path);

  foreach(FileInfo f in dir GetFiles( * mp ))

  

    MyPlayer AddFile(f FullName);

  

  foreach(DirectoryInfo f in dir GetDirectories())

  

   showfiles(f FullName listBox );

 

删除和清空直接调用类Player中的AddFileDelFile函数

 

实现播放上一首

 

  if(listBox SelectedIndex >= )

  

  listBox SelectedIndex ;

  if(listBox SelectedIndex < )listBox SelectedIndex = MyPlayer NumOfMusic ;

  MyPlayer play(listBox SelectedIndex + );

 

下一首

 

  if(listBox SelectedIndex >= )

  

  listBox SelectedIndex = (listBox SelectedIndex + ) % MyPlayer NumOfMusic;

  MyPlayer play(listBox SelectedIndex + );

 

播放的控制

 

利用PlayerNextPlay方法返回的值来选择下一次播放的内容

 

同时利用PlayStateChange事件来实现由一曲到下一曲的替换 但是在响应PlayStateChange事件的时候直接改变Playerurl无法让它直接播放下一曲 解决方法如下:

 

  private void axWindowsMediaPlayer _PlayStateChange(object sender AxWMPLib _WMPOCXEvents_PlayStateChangeEvent e)

  

   if(MyPlayer playstate == WMPLib WMPPlayState wmppsMediaEnded)

  

    timer Start();

  

  

  private void timer _Tick(object sender System EventArgs e)

  

  timer Stop();

   int selectnum = ;

   if(menuItem Checked)selectnum = MyPlayer NextPlay( );

  else if (menuItem Checked)selectnum = MyPlayer NextPlay( );

  else if (menuItem Checked)selectnum = MyPlayer NextPlay( );

  else if (menuItem Checked)selectnum = MyPlayer NextPlay( );

  if(selectnum != )

  

    listBox SelectedIndex = selectnum ;

    MyPlayer play(selectnum);

  

  

cha138/Article/program/net/201311/15463

相关参考

知识大全 分享——一个简单的MP3播放器的制作

分享——一个简单的MP3播放器的制作  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  利用API函

知识大全 Android MediaPlayer播放音乐有必要使用Service来调用吗

AndroidMediaPlayer播放音乐有必要使用Service来调用吗  以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我

知识大全 什么软件可以在mp3中添加背景音乐

什么软件可以在mp3中添加背景音乐,怎样在软件里添加背景音乐一.在程序中直接播放声音文件在VC++中的多媒体动态连接库中提供了一组与音频设备有关的函数。利用这些函数可以方便地播放声音。最简单的播放声音

知识大全 用VB实现队列播放MP3

用VB实现队列播放MP3  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  队列播放MP就是在文件列

知识大全 求一些成语故事,MP3格式的,可以在手机上播放

求一些成语故事,MP3格式的,可以在手机上播放  以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!求一些成

知识大全 用VB.net2008打造你的影音播放器

用VB.net2008打造你的影音播放器  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本篇文章

知识大全 用VB.net2008打造你的影音播放器[1]

用VB.net2008打造你的影音播放器[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本

知识大全 用VB.net2008打造你的影音播放器[2]

用VB.net2008打造你的影音播放器[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  进

知识大全 在酷狗中怎么才能把格式改成mp3的

在酷狗中怎么才能把格式改成mp3的1、选定歌曲:在需要操作的歌曲上(注意只有在播放列表中),点击鼠标右键,选择“格式转换”,弹出“格式转换工具”窗口或者从开始菜单中的酷狗音乐文件夹中选取格式转换工具,

知识大全 Visual C# 打造 “浏览器”

VisualC#打造“浏览器”  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  VisualC#是