标题:请热心人士帮帮忙!
只看楼主
cql
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2005-4-17
 问题点数:0 回复次数:4 
请热心人士帮帮忙!
请问一下如何在中使用Media player播放音乐?谢谢!
搜索更多相关主题的帖子: 热心 
2005-08-15 12:19
冰封谷主
Rank: 4
等 级:贵宾
威 望:10
帖 子:226
专家分:20
注 册:2005-1-7
得分:0 
添加一个组件.

2005-08-15 12:20
cql
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2005-4-17
得分:0 
请问添加media player组件以后怎么让播放的URL动态跟数据库连接?谢谢!

/pa?p=1:123440016:10" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://wpa./pa?p=1:123440016:10');}" onmousewheel="return imgzoom(this);" alt="" />/msgrd?V=1&Uin=123440016&Site=im.&Menu=yes" target="_blank">点击这里给我发消息
2005-08-15 12:35
冰封谷主
Rank: 4
等 级:贵宾
威 望:10
帖 子:226
专家分:20
注 册:2005-1-7
得分:0 
刚从网上看到的,,希望对你有用! Mp3播放器主要完成下列功能:   1. 添加歌曲,可以添加单个乐曲或者指定文件夹内包括其子文件夹内的所有mp3乐曲到播放列表。     2. 删除指定歌曲或所有歌曲。   3. 播放的控制。包括选择上一首,下一首播放,顺序播放,循环播放和随机播放。循环播放又分单个歌曲的循环播放和所有歌曲的循环播放。   首先建立类player。
public class Player {  private AxWMPLib.AxWindowsMediaPlayer 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[1000];   numOfMusic = 0;  }  public void AddFile(string path)  {   if(numOfMusic < 1000)   {    numOfMusic ++;    playList[numOfMusic] = path;   }  }  public void DelFile(int selectNum)  {   for(int i = selectNum; i <= numOfMusic - 1; i++)   {    playList[i] = playList[i + 1];   }   numOfMusic --;  }  public void play(int selectNum)  {   myPlayer.URL = playList[selectNum];   currentPlay = selectNum;  }  public int NextPlay(int type)  {   /* type = 0 顺序   type = 1 重复播放全部   type = 2 重复播放一首   type = 3 随机播放   */   switch (type)   {    case 0:     currentPlay ++;     if(currentPlay > numOfMusic)return 0;     else return currentPlay;    case 1:     currentPlay ++;     if(currentPlay > numOfMusic) return 1;     else return currentPlay;    case 2:     return currentPlay;    case 3:     Random rdm = new Random(unchecked((int)DateTime.Now.Ticks));     currentPlay = rdm.Next() % numOfMusic;     if(currentPlay == 0) return numOfMusic;     else return currentPlay;    default:     return 0;   }  } }
  Player类中包括一个windowsMediaPlayer对象myPlayer,一个存储播放列表的数组playlist,记录歌曲总数的numOfMusic,以及当前播放的歌曲对应列表中的序号currentplay; 另外有四个方法分别是Play,AddFile,DelFile,以及获得下次播放序号的NextPlay   分功能列出其他主要代码   添加单个歌曲
if(this.openFileDialog1.ShowDialog() == DialogResult.OK) {  string path = this.openFileDialog1.FileName;  FileInfo f = new FileInfo(path);  MyPlayer.AddFile(f.FullName);  string STRFILE = Convert.ToString(MyPlayer.NumOfMusic);  for(int i = 1;i<=5-STRFILE.Length;i++)STRFILE+=’ ’;  STRFILE += f.Name;  this.listBox1.Items.Add(STRFILE); }
  添加一个文件夹及其所有子文件夹的歌曲   利用递归函数showfiles实现所有层歌曲都添加到歌曲列表中。
private void showfiles(string path,ListBox listBox1) {  DirectoryInfo dir = new DirectoryInfo(path);  foreach(FileInfo f in dir.GetFiles("*.mp3"))  {   MyPlayer.AddFile(f.FullName);  }  foreach(DirectoryInfo f in dir.GetDirectories())  {   showfiles(f.FullName,listBox1);  }
  删除和清空直接调用类Player中的AddFile和DelFile函数   实现播放上一首
if(listBox1.SelectedIndex >= 0) {  listBox1.SelectedIndex --;  if(listBox1.SelectedIndex <0)listBox1.SelectedIndex = MyPlayer.NumOfMusic - 1;  MyPlayer.play(listBox1.SelectedIndex + 1); }
  下一首
if(listBox1.SelectedIndex >= 0) {  listBox1.SelectedIndex = (listBox1.SelectedIndex + 1) % MyPlayer.NumOfMusic;  MyPlayer.play(listBox1.SelectedIndex + 1); }
  播放的控制   利用Player的NextPlay方法返回的值来选择下一次播放的内容。   同时利用PlayStateChange事件来实现由一曲到下一曲的替换,但是在响应PlayStateChange事件的时候直接改变Player的url无法让它直接播放下一曲,解决方法如下:
private void axWindowsMediaPlayer1_PlayStateChange(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e) {  if(MyPlayer.playstate == WMPLib.WMPPlayState.wmppsMediaEnded)  {   timer1.Start();  } } private void timer1_Tick(object sender, System.EventArgs e) {  timer1.Stop();  int selectnum = 0;  if(menuItem13.Checked)selectnum = MyPlayer.NextPlay(0);  else if (menuItem15.Checked)selectnum = MyPlayer.NextPlay(1);  else if (menuItem16.Checked)selectnum = MyPlayer.NextPlay(2);  else if (menuItem17.Checked)selectnum = MyPlayer.NextPlay(3);  if(selectnum != 0)  {   listBox1.SelectedIndex = selectnum - 1;    MyPlayer.play(selectnum);  } }
  满足一首歌曲结束的条件的时候唤醒计时器,计时器100ms内就响应函数timer1_Tick,在这个函数里实现下一首歌曲的选择播放便可以顺利进行.

2005-08-15 18:33
梦幻情缘
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:769
专家分:20
注 册:2005-4-4
得分:0 
发得不错啊!
--------------------------------------------------------------------------



昨夜西风凋碧树。独上高楼,望尽天涯路
衣带渐宽终不悔,为伊消得人憔悴
众里寻他千百度,蓦然回首,那人却在灯火阑珊处
2005-08-15 19:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-25173-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.248261 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved