C#AxWindowsMediaPlayer 控件的应用

今天来学习C#中媒体播放控件AxWindowsMediaPlayer 的一些属性和方法

1。先要引用AxWindowsMediaPlayer 控件
在工具栏组件栏右键选择“选择项”
在这里插入图片描述
在工具箱项选择COM组件->Windows Media Player

在这里插入图片描述
这样就在工具栏组件中能找到Windows Media Player控件了
在这里插入图片描述
把它拖到窗口上
在这里插入图片描述
2。创建播放列表
Windows Media Player控件本身没有播放列表,只有一个表示当前播放列表的属性currentPlaylist

它要一个类型为WMPLib.IWMPPlaylist的列表,所以我们要自己创建一个这样的列表

在这里插入代码片
WMPLib.IWMPPlaylist videoList;
 videoList = axWindowsMediaPlayer1.playlistCollection.newPlaylist("one");
 //创建一个新的基于axWindowsMediaPlayer1.新播放列表,名称为"one"
 //当然可以创建多个列表,用名称来区分

加歌曲文件到列表中

//path为要加载歌曲的文件夹路径
private void LoadFile(string path)
        {
            DirectoryInfo theDir = new DirectoryInfo(path);
            //获得theDir文件夹下是ma3的音乐文件
            FileInfo[] files = theDir.GetFiles("*.mp3");
            foreach (FileInfo f in files)
            {
            	//文件名添加到listbox控件中,同时也要添加到播放列表中(要全路径名称)
                listBox1.Items.Add(f.Name);
                videoList.appendItem(axWindowsMediaPlayer1.newMedia(f.FullName));
            }
            listBox1.SelectedIndex = 0;
            //设置当前播放列表为videlist
            axWindowsMediaPlayer1.currentPlaylist = videoList;
            //开始播放
            axWindowsMediaPlayer1.Ctlcontrols.play();
        }

在加载窗口时调用

 WMPLib.IWMPPlaylist videoList;
private void Form1_Load(object sender, EventArgs e)
        {
            videoList = axWindowsMediaPlayer1.playlistCollection.newPlaylist("one");
            LoadFile(@"H:\我的音乐\u盘歌曲\001 [音乐] 2022热歌榜");
        }

3.控件上各个按钮都可以用了
在这里插入图片描述
可以操作,暂停,停止,上一曲,下一曲,音量大小,静音,进度条

4.在列表控件双击选中要播放的歌曲播放,在列表控件的鼠标双击事件中
4.1.这是我第一次的方法
获得控件选中项的索引,再通过索引找到当前播放列表对应索引的歌曲路径
当然这样也能播放,但是控件上的上一曲和下一曲按钮就不能用了,如下图
而且播放完后也不自动下一首了,让人郁闷

 private void listBox1_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            int nSel = listBox1.SelectedIndex;
            if(nSel!=-1)
            {
            	
                axWindowsMediaPlayer1.URL = videoList.Item[nSel].sourceURL;
                axWindowsMediaPlayer1.Ctlcontrols.play();
            }
        }

在这里插入图片描述
4.2.这是第二种方法

 private void listBox1_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            int nSel = listBox1.SelectedIndex;
            if(nSel!=-1)
            {
                
                axWindowsMediaPlayer1.currentMedia = videoList.Item[nSel];
                axWindowsMediaPlayer1.Ctlcontrols.play();
               
            }
        }

和上面一样的效果

4.3.最后要用axWindowsMediaPlayer1.Ctlcontrols.playItem()方法才是播放指定播放列表中指定的项

private void listBox1_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            int nSel = listBox1.SelectedIndex;
            if(nSel!=-1)
            {
                //axWindowsMediaPlayer1.URL = videoList.Item[nSel].sourceURL;
                //axWindowsMediaPlayer1.currentMedia = videoList.Item[nSel];
                //axWindowsMediaPlayer1.Ctlcontrols.play();
                axWindowsMediaPlayer1.Ctlcontrols.playItem(videoList.Item[nSel]);
            }
        }

这样就能用上一曲和下一曲了,播放完后自动下一曲

5.让播放列表的当前播放的歌曲和列表控件选中项同步

这就难了,关键是当前播放列表获取不到当前播放歌曲的索引,这就难办了,
我在网上找了好久都没有能获取当前播放歌曲在播放列表中的索引
能获得当前歌曲的名称,标题,作者,大小,时间等等,
最后只能用获取当前歌曲的名称在列表控件中查找来获得当前的索引

方法:CurrentItemChange 在当前播放列表项发生改变事件中

private void axWindowsMediaPlayer1_CurrentItemChange(object sender, AxWMPLib._WMPOCXEvents_CurrentItemChangeEvent e)
        {
        	//要获取全路径名称,因当前歌曲名称有可能截了的
            string path=axWindowsMediaPlayer1.currentMedia.sourceURL;
            //获取最后文件夹路径标记"\"在字符串中的位置
            int ns= path.LastIndexOf('\\')+1;
            //截取歌曲名称
            string name = path.Substring(ns);
            //查找歌曲名称在列表控件中的索引
            int n=listBox1.FindStringExact(name, -1);
            if(n>=0)
            {
                listBox1.SelectedIndex = n;//重新设置选中项
            }
        }

就这样当点击下一曲时,列表控件也会自动选中下一个,
点击上一曲是,列表控件会选中上一个
在这里插入图片描述
6.歌词显示
这后面再弄,就这都弄得头晕

7.播放视频
如图:
在这里插入图片描述
设置:
axWindowsMediaPlayer1.URL = @“E:\薛之谦_追梦人.wmv”;
axWindowsMediaPlayer1.Ctlcontrols.play();

  • 9
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: axwindowsmediaplayer是一个Windows平台上的多媒体播放器控件,可以用于播放音频和视频文件。它提供了一系列的API和事件,可以方便地控制媒体的播放、暂停、停止、快进、快退等操作,同时还支持调整音量、设置播放速度、显示字幕等功能。 ### 回答2: AxWindowsMediaPlayer 是一个功能强大的媒体播放器控件,它是Windows Media Player的一个完整的封装。AxWindowsMediaPlayer 可以轻松地实现多种多媒体格式的播放,包括音频及视频文件等,支持常见的播放功能,如播放、暂停、停止、快进、快退、音量调节等。此外,AxWindowsMediaPlayer 还支持多媒体的编解码、捕捉图像和水印、相互策略等功能,能够满足不同程序需要。 使用 AxWindowsMediaPlayer 控件,我们可以很方便地实现媒体播放的需求。只需要在项目中引入相关语句和参考文件,就可以在控件上添加音视频文件,提供一些基本设置和控制播放。为了实现更为丰富的交互和效果,我们还可以通过其事件模型和属性设置进行进一步修改和定制。在实际应用中,我们也可以通过网络获取媒体数据或处理本地数据源,如本地文件、数据库或列表等。 总之,AxWindowsMediaPlayer 是一个非常实用的媒体播放器控件,它可以在各种应用环境中发挥重要作用,包括多媒体展示、教育教学、市场营销、游戏娱乐等等。如果你需要使用媒体播放功能丰满的程序,AxWindowsMediaPlayer 将是一个不错的选择。 ### 回答3: AXWindowsMediaPlayer是微软公司开发的一款多媒体播放器控件,可以嵌入到.NET应用程序中,用于播放各种格式的音频和视频文件。其主要功能包括:播放、暂停、停止、快进、倒带、调整音量、全屏播放等。 AXWindowsMediaPlayer使用简单方便,可以通过代码或属性控制其各种功能,也可以通过用户交互控制其播放状态。同时,该控件还支持多种视频音频格式,如WMV、AVI、MP3、WMA、MP4等。此外,AXWindowsMediaPlayer还具有易用的UI界面,可自定义皮肤和样式。 AXWindowsMediaPlayer对多媒体文件的播放具有较强的适应性,可以根据不同的文件格式播放出高品质的音视频。其在播放电影、音乐和游戏等方面均有广泛的应用,同时也可以用于企业培训视频、广告宣传、教育教学等领域。 AXWindowsMediaPlayer对于开发人员来说,提供了一个强大的工具来整合多媒体播放到他们的应用程序中。它可以用于开发多媒体应用程序,如音频播放器、视频编辑器和音乐制作软件等。此外, AXWindowsMediaPlayer的API接口也对于开发人员进行二次开发提供了更多的操作自由度。 总结起来,AXWindowsMediaPlayer是一款优秀的多媒体播放器控件,其便于开发、易用性强、支持的格式广泛、适应性强等特点,为开发人员提供了很大的帮助,同时也为用户提供了更好的体验。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值