c#音乐播放器续(联网下载)
音乐播放器
- 0.前言
- 1.关于本地音乐播放
- 2.使用iTunes Search API进行联网下载歌曲
- 2.1 控件
- 2.2 函数实现
- 2.2.1 控件2:搜索歌曲
- 2.2.2 控件3:下载歌曲
- 2.3 主界面
- 3.拓展
0.前言
- 书接上文,我们已经实现了一个能够播放本地音乐的音乐播放器,能够播放众多音乐格式,包括
.ogg
,接下来,我们将为我们的音乐播放器添加一个令人激动的新功能——联网音乐下载和播放!这个功能将使我们能够通过网络获取音乐,并将其添加到我们的播放列表中。 - 为了实现这个功能,我们选择使用苹果音乐开放的API。尽管这个API只支持音乐的30秒预览,但它非常适合初学者上手。使用这个API不需要认证或密钥等额外操作,让我们能够更快地理解和实现联网音乐下载功能。
- 本项目旨在练习如何实现联网音乐下载,理解基础方法后,想要拓展很快就能上手。
1.关于本地音乐播放
详情可查看本人上篇博客~
在此只放框架:
public partial class Form1 : Form
{VorbisWaveReader oggReader = null; //定义此对象,用于解析.ogg文件格式WaveOutEvent outputDevice = null; //定义此对象,用于播放.ogg音频List<string> localmusiclist = new List<string>(); //添加的所有音频文件int index = -1; //当前播放的音频文件索引public Form1(){InitializeComponent();}private void musicplay(string filename){label1.Text = Path.GetFileNameWithoutExtension(localmusiclist[index]);//获取filename的后缀名string extension = Path.GetExtension(filename).ToLower();//如果oggReader和outputDevice不为空,说明正在播放或播放过ogg文件,此时要再播放新选择的文件就要先释放旧的if (oggReader != null && outputDevice != null){oggReader.Dispose();oggReader = null;outputDevice.Dispose(); outputDevice = null;}axWindowsMediaPlayer1.Ctlcontrols.stop();try{if (extension == ".ogg"){oggReader = new VorbisWaveReader(filename);outputDevice = new WaveOutEvent();outputDevice.Init(oggReader);outputDevice.Play();}else{axWindowsMediaPlayer1.URL = filename;axWindowsMediaPlayer1.Ctlcontrols.play();}}catch (FileNotFoundException ex){MessageBox.Show