使用C#在Windows表单中加载和定制歌曲

在深入本文之前,建议先了解Windows Media Player类或COM引用的相关知识。本文将介绍如何使用C#和Windows Media Player COM引用在Windows表单应用程序中加载和定制歌曲。

Windows Media Player是一个强大的多媒体播放器,它提供了丰富的API和COM接口,允许开发者在应用程序中集成媒体播放功能。本文将展示如何通过C#编程语言,利用Windows Media Player的COM引用来实现歌曲的加载、定制播放列表等功能。

使用代码

在开始之前,首先需要初始化一个表单(Form1),并在该表单加载时创建一个Windows Media Player的实例。

private void Form1_Load(object sender, EventArgs e) { this.player = new Media_Player_Registry.MediaPlayer(); // 设置媒体播放器变量 this.player.Volume = this.Volume.Value; }

在上述代码中,调用了Media_Player_Registry.MediaPlayer类,该类负责管理与Windows Media Player的交互。

在MediaPlayer类中,定义了一些有用的变量:

  • player - 与Windows Media Player COM连接的变量。
  • Active_Song - 当前激活的歌曲,是一个Song类型的变量。
  • Volume - 表示歌曲的音量。
  • media_loaded_songs - 已加载歌曲的数量。

Song类

Song类是一个简单的存储歌曲信息的类,包括:

  • song_name - 歌曲名称。
  • active_song - 表示歌曲是否在播放器中激活。
  • mute - 表示歌曲是否静音。

方法

虽然不会在这里描述所有创建的方法,但以下是一些重要的方法:

BaseName方法用于获取文件的基本名称。例如,给定路径"C:\users\yahav\Music\song name.mp3",该方法将返回"song name"。

public string BaseName() { string basename = ""; string tmp_basename = ""; for (int i = 0; i < this.song_name.Length; i++) { tmp_basename = this.song_name.Substring(i); if (tmp_basename.IndexOf(@"\") == -1) { basename += this.song_name[i]; } } return basename; }

Volume属性用于设置和获取歌曲的音量。Windows Media Player的音量参数范围是从-100到-1000,而滚动条设置为1到10。因此,使用(volume * -100)来进行转换。

public int Volume { get { return this.volume; } set { if (value < 0) { this.volume = 0; } else if (value > 10) { this.volume = 10; } else { this.volume = value; } // 设置Windows Media Player的音量 switch (this.volume) { case 0: this.volume = 10; break; case 1: this.volume = 9; break; // ... 更多的case case 10: this.volume = 0; break; } this.volume = this.volume * -100; this.player.Volume = this.volume; } }

LoadSong方法用于加载歌曲。它首先显示一个.NET打开文件对话框,让用户选择歌曲,然后调用LoadSong方法加载歌曲。

public void LoadSong() { LoadDialog.Reset(); LoadDialog.CheckFileExists = true; LoadDialog.CheckPathExists = true; LoadDialog.AddExtension = true; LoadDialog.DefaultExt = ".mp3"; LoadDialog.Title = "Select mp3 file"; LoadDialog.Filter = "MP3 files (*.mp3)|*.*"; LoadDialog.ShowDialog(); if (this.LoadDialog.FileName == "" || this.LoadDialog.FileName == null) { return; } this.LoadSong(LoadDialog.FileName); // 设置到列表 TreeNode t = new TreeNode(); t.Name = LoadDialog.FileName; t.Checked = true; t.NodeFont = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(177))); t.Text = this.player.Active_BaseSongName(); this.SongList.Nodes.AddRange(new System.Windows.Forms.TreeNode[] { t }); }

要点

System.Windows.Forms.MessageBox.Show(this.player.Volume);
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485