C# Winform下实现AxWindowsMediaPlayer循环播放

4星 · 超过85%的资源 需积分: 16 20 下载量 200 浏览量 更新于2024-09-16 收藏 3KB TXT 举报
"这篇文章主要介绍了如何在C# WinForm应用程序中使用Windows Media Player控件实现音乐的循环播放功能。" 在Windows Media Player控件中实现循环播放音乐是常见的需求,尤其是在开发媒体播放软件或者需要背景音乐的应用场景下。C# WinForm提供了与Windows Media Player控件交互的能力,可以通过编程方式控制其播放行为。以下将详细讲解如何通过C#代码实现这个功能。 首先,我们需要引入`AxWMPLib`命名空间,这个命名空间包含了`AxWindowsMediaPlayer`控件,它是Windows Media Player的ActiveX版本。在代码中可以看到,创建了一个名为`axWindowsMediaPlayer1`的实例,并将其添加到窗体上: ```csharp private AxWMPLib.AxWindowsMediaPlayer axWindowsMediaPlayer1; public VedioForm() { InitializeComponent(); InitVedio(); } private void InitVedio() { this.axWindowsMediaPlayer1 = new AxWMPLib.AxWindowsMediaPlayer(); // 设置控件属性 this.axWindowsMediaPlayer1.Enabled = true; this.axWindowsMediaPlayer1.Location = new System.Drawing.Point(0, 400); this.axWindowsMediaPlayer1.Name = "axWindowsMediaPlayer1"; this.axWindowsMediaPlayer1.Size = new System.Drawing.Size(800, 500); this.axWindowsMediaPlayer1.TabIndex = 2; this.Controls.Add(this.axWindowsMediaPlayer1); } ``` 然后,需要设置播放的音乐文件路径。在`InitVedioUrl()`方法中,我们将音乐文件的URL赋值给`axWindowsMediaPlayer1.URL`: ```csharp protected void InitVedioUrl() { this.axWindowsMediaPlayer1.URL = @"D:/Vedio/default.wmv"; } ``` 为了实现循环播放,我们需要监听播放器的状态变化事件。在`InitEvent()`方法中,我们订阅了`StatusChange`事件: ```csharp protected void InitEvent() { axWindowsMediaPlayer1.StatusChange += new EventHandler(axWindowsMediaPlayer1_StatusChange); } ``` 当`StatusChange`事件触发时,我们需要检查当前播放状态。如果播放结束,可以重新设置播放位置到开头,从而实现循环播放: ```csharp private void axWindowsMediaPlayer1_StatusChange(object sender, EventArgs e) { if (axWindowsMediaPlayer1.playState == WMPLib.WMPlayer.OLECMDEXECOPT_DONTCARE && axWindowsMediaPlayer1.currentMedia != null) { if (axWindowsMediaPlayer1.currentMedia.duration == axWindowsMediaPlayer1.position) { axWindowsMediaPlayer1.Ctlcontrols.currentPosition = 0; } } } ``` 在这个事件处理函数中,我们首先判断播放器的播放状态(`playState`),如果播放状态是`WMPlayer.OLECMDEXECOPT_DONTCARE`,并且当前媒体文件(`currentMedia`)不为空,那么我们就检查播放位置是否已经到达了媒体文件的结尾。如果是,我们将播放位置重置为0,即歌曲的开始处,这样就实现了循环播放。 以上就是利用C# WinForm和Windows Media Player控件实现音乐循环播放的详细步骤。通过这种方式,开发者可以在自己的应用程序中轻松地集成循环播放功能。需要注意的是,实际应用中可能需要考虑更多的细节,比如错误处理、用户交互以及更复杂的播放控制等。