加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C#播放背景音乐的几种方法

发布时间:2020-12-15 17:55:43 所属栏目:百科 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 C#播放背景音乐通常有四种方式:? 1.播放系统事件声音? 2.使用System.Media.SoundPlayer播放wav? 3.使用MCI?Command?String多媒体设备程序接口播放mp3

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

C#播放背景音乐通常有四种方式:?
1.播放系统事件声音?
2.使用System.Media.SoundPlayer播放wav?
3.使用MCI?Command?String多媒体设备程序接口播放mp3,avi等?
4.使用axWindowsMediaPlayer的COM组件来播放
?
具体的使用方法:
?
1.播放系统事件声音?
  System.Media.SystemSounds.Asterisk.Play(); 
  System.Media.SystemSounds.Beep.Play(); 
  System.Media.SystemSounds.Exclamation.Play(); 
  System.Media.SystemSounds.Hand.Play(); 
  System.Media.SystemSounds.Question.Play();
  
2.使用System.Media.SoundPlayer播放wav,mp3?
System.Media.SoundPlayer?sp?=?new?SoundPlayer();?
sp.SoundLocation?=?@"恋爱ing.wav";?
sp.PlayLooping();
?
????注:使用这种方法,总是提示出?该文件不是波形文件,很郁闷,还是没有找出原因!!
?
????使用VS2008的话,直接添加System.Media命名空间即可!很简单!
?
??
?
3.使用MCI?Command?String多媒体设备程序接口播放mp3,avi等?
  using System.Runtime.InteropServices; 
  public static uint SND_ASYNC = 0x0001; 
  public static uint SND_FILENAME = 0x00020000; 
  [DllImport("winmm.dll")] 
  public static extern uint mciSendString(string lpstrCommand,  string lpstrReturnString,uint uReturnLength,uint hWndCallback); 
  public void Play() 
  { 
    mciSendString(@"close temp_alias",null,0); 
    mciSendString(@"open ""恋爱ing.mp3"" alias temp_alias",0); 
    mciSendString("play temp_alias repeat",0); 
  } 
  
???关于mciSendString的详细参数说明,请参见MSDN,或是http://blog.csdn.net/psongchao/archive/2007/01/19/1487788.aspx
?
?????这个方法可以识别一般的文件,比较强大!!
?
??
?
4.使用axWindowsMediaPlayer的COM组件来播放?
???a.加载COM组件:ToolBox->Choose?Items->COM?Components->Windows?Media?Player如下图:
?
???b.把Windows?Media?Player控件拖放到Winform窗体中,把axWindowsMediaPlayer1中URL属性设置为MP3或是AVI的文件路径,F5运行。
?
???如何使用Windows?Media?Player循环播放列表中的媒体文件??
??假设我们有一个播放列表,下面的代码可以实现自动循环播放?
  private void axWindowsMediaPlayer1_PlayStateChange(object sender,AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e) 
 { 
  if (axWindowsMediaPlayer1.playState == WMPLib.WMPPlayState.wmppsMediaEnded) 
  { 
    Thread thread = new Thread(new ThreadStart(PlayThread)); 
    thread.Start(); 
  } 
 } 
 private void PlayThread() 
 { 
  axWindowsMediaPlayer1.URL = @"E:MusicSomeOne.avi"; 
  axWindowsMediaPlayer1.Ctlcontrols.play(); 
 }
 
MCI?Command?String和Windows?Media?Player都有非常丰富的功能接口,这里不能一一介绍,可以参考MSDN中的具体描述.

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读