AxMediaPlayer控件使用方法
### AxMediaPlayer 控件使用方法详解 #### 一、概述 在C#开发环境中,多媒体处理是常见需求之一,尤其在需要支持视频或音频播放的应用场景下。`AxMediaPlayer`控件作为非`AxWindowsMediaPlayer`的一种选择,在某些特定场景下具有独特的优势。本文将详细介绍如何在C#中使用`AxMediaPlayer`控件进行多媒体文件的加载与播放。 #### 二、AxMediaPlayer 控件简介 `AxMediaPlayer`控件基于DirectShow技术,主要用作媒体播放器的核心组件。它提供了一种灵活且高效的方式来控制媒体文件的播放。该控件通过引用DirectShow库(通常为`msdxm.ocx`文件)实现多媒体文件的播放功能。 #### 三、环境配置 为了能够正常使用`AxMediaPlayer`控件,首先需要确保系统环境正确配置: 1. **添加引用**:需要将`MediaPlayer.dll`和`AxMediaPlayer.dll`文件添加到项目中。 2. **注册ActiveX控件**:通过运行命令`regsvr32 msdxm.ocx`来注册`msdxm.ocx`文件,该文件位于`C:\WinNT\System32`目录下。如果操作系统版本不同,则路径可能会有所不同。 #### 四、代码示例详解 接下来,我们将通过一个具体的例子来了解如何使用`AxMediaPlayer`控件进行多媒体文件的操作。 ##### 1. 文件加载与列表展示 ```csharp private void button1_Click(object sender, System.EventArgs e) { // 打开文件对话框,选择要播放的文件 if (this.openFileDialog1.ShowDialog() == DialogResult.OK) { this.listView1.Items.Clear(); // 清空当前列表视图中的项 string[] fileNames = this.openFileDialog1.FileNames; // 获取选中的文件名数组 foreach (string fileName in fileNames) { // 获取文件大小 FileInfo fileInfo = new FileInfo(fileName); float fileSize = (float)fileInfo.Length / (1024 * 1024); // 使用AxMediaPlayer播放选定文件 this.axMediaPlayer1.FileName = fileName; // 获取媒体信息 string author = this.axMediaPlayer1.GetMediaInfoString(MediaPlayer.MPMediaInfoType.mpClipAuthor); // 提取文件名(不包含路径) string shortFileName = fileName.Substring(fileName.LastIndexOf("\\") + 1); shortFileName = shortFileName.Substring(0, shortFileName.Length - 4); // 添加到列表视图 string[] subItem = { shortFileName, author, fileSize.ToString("F2") + " MB", fileName }; ListViewItem item = new ListViewItem(subItem); this.listView1.Items.Add(item); this.listView1.Items[0].Selected = true; } } } ``` ##### 2. 播放文件 ```csharp private void button2_Click(object sender, System.EventArgs e) { // 播放选中的文件 if (this.listView1.Items.Count > 0 && this.listView1.SelectedItems.Count > 0) { int index = this.listView1.SelectedItems[0].Index; string fileName = this.listView1.Items[index].SubItems[3].Text; this.axMediaPlayer1.FileName = fileName; this.axMediaPlayer1.Play(); } else { MessageBox.Show("请选择要播放的文件!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } } ``` ##### 3. 暂停播放 ```csharp private void button4_Click(object sender, System.EventArgs e) { // 暂停播放 if (this.axMediaPlayer1.FileName.Length > 0) { this.axMediaPlayer1.Pause(); } else { MessageBox.Show("当前未播放任何文件!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } } ``` ##### 4. 停止播放 ```csharp private void button5_Click(object sender, System.EventArgs e) { // 停止播放 if (this.axMediaPlayer1.FileName.Length > 0) { this.axMediaPlayer1.Stop(); } else { MessageBox.Show("当前未播放任何文件!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } } ``` #### 五、总结 本文介绍了如何在C#应用程序中使用`AxMediaPlayer`控件实现多媒体文件的播放功能,并提供了详细的代码示例。通过这些示例,开发者可以更好地理解和掌握`AxMediaPlayer`控件的使用方法,进而开发出更加强大和灵活的多媒体应用。
一:c#中播放MP3文件
首先,我们要生成MediaPlayer.dll 和 AxMediaPlayer.dll控件:
方法如下:命令为:aximp c:\winnt\system32\msdxm.ocx 而通常 msdxm.ocx中的ActiveX控件都未注册! 则先运行regsvr32 msdxm.ocx手动注册便生成需要的动态连接库文件。
其次:填写程序如下:
private void button1_Click(object sender, System.EventArgs e)
{//浏览MP3文件
if(this.openFileDialog1.ShowDialog()==DialogResult.OK)
{
this.listView1.Items.Clear();
string []FileNames=this.openFileDialog1.FileNames;
foreach(string FileName in FileNames)
{
//取得文件大小
FileInfo MyFileInfo=new FileInfo(FileName);
float MyFileSize=(float)MyFileInfo.Length/(1024*1024);
this.axMediaPlayer1.FileName=FileName;
//取得作者信息
string MyAuthor=this.axMediaPlayer1.GetMediaInfoString(MediaPlayer.MPMediaInfoType.mpClipAuthor);
//取得不含路径的文件名
string MyShortFileName=FileName.Substring(FileName.LastIndexOf("\\")+1);
MyShortFileName=MyShortFileName.Substring(0,MyShortFileName.Length-4);
//填充歌曲列表
string[] SubItem={MyShortFileName,MyAuthor,MyFileSize.ToString().Substring(0,4)+"M",FileName};
ListViewItem Item=new ListViewItem(SubItem);
this.listView1.Items.Add(Item);
this.listView1.Items[0].Selected=true;
}
- maxiaohuan12013-03-11不是我想要的,,这个全是c#写的
- 粉丝: 9
- 资源: 14
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Spring Boot和Vue的高性能售票系统.zip
- (源码)基于Windows API的USB设备通信系统.zip
- (源码)基于Spring Boot框架的进销存管理系统.zip
- (源码)基于Java和JavaFX的学生管理系统.zip
- (源码)基于C语言和Easyx库的内存分配模拟系统.zip
- (源码)基于WPF和EdgeTTS的桌宠插件系统.zip
- (源码)基于PonyText的文本排版与预处理系统.zip
- joi_240913_8.8.0_73327_share-2EM46K.apk
- Library-rl78g15-fpb-1.2.1.zip
- llvm-17.0.1.202406-rl78-elf.zip