日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > C# >内容正文

C#

基于C#的音乐播放器

發(fā)布時(shí)間:2023/12/20 C# 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于C#的音乐播放器 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

效果圖:

實(shí)現(xiàn)了基本功能:

歌詞顯示功能;

播放功能;

切歌功能;

進(jìn)度條拖動(dòng)播放功能;


下面是用到的一些變量

List<string> MusicList = new List<string>();//存儲(chǔ)音樂(lè)文件的路徑List<Label> MusicLableList = new List<Label>();private Point MusicPos;//捕捉鼠標(biāo),移動(dòng)formbool BIsMusicPlay; //是否播放string timeLeft;//歌曲已播放時(shí)長(zhǎng)LyricFiles MusicLyric; //歌詞bool isShow = false;//歌曲列表顯示與隱藏bool isMute;//是否靜音int MuteBefore; //靜音前音量int playmode; //播放模式

Form1_Load中增添了雙緩沖功能

//初始化歌曲列表DirectoryInfo dirinfo = new DirectoryInfo("./song/");FileInfo[] filelist = dirinfo.GetFiles();string MusicName;//新建播放列表for (int i = 0; i < filelist.Length; i++){if (!ControlMusicList.Items.Contains(Path.GetFileName(filelist[i].FullName))){MusicName = filelist[i].FullName;ControlMusicList.Items.Add(Path.GetFileName(MusicName)); //初始化歌詞顯示區(qū)域for (int i = 0; i < 7; i++){Label label = new Label();label.Location = new Point(30, 55 + i * 45);label.Size = new Size(900, 50);label.BackColor = Color.Transparent;label.ForeColor = Color.White;label.Font = new Font("微軟雅黑", 15); //默認(rèn)播放列表第一首歌if (ControlMusicList.Items != null){//初始化MusicList,使默認(rèn)歌曲為index==0ControlMusicList.SelectedIndex = 0;} BIsMusicPlay = false;//初始化進(jìn)度條trkVolume.Value = WMPlayer.settings.volume;//初始化,準(zhǔn)備工作pnlControl.BackColor = Color.FromArgb(127, 200, 200, 200);//隱藏音量調(diào)節(jié)條isMute = false;

播放與暫停播放功能:

//播放暫停BIsMusicPlay = !BIsMusicPlay;if (BIsMusicPlay){//播放歌曲WMPlayer.Ctlcontrols.play();//MusicPlay(MusicList[ControlMusicList.SelectedIndex]);//播放歌詞TimeMusicLyric.Enabled = true;TimeMusicPlay.Enabled = true;ControlMusicPlay.BackgroundImage = Properties.Resources.pause;}else//暫停歌曲{WMPlayer.Ctlcontrols.pause();

雙擊列表播放功能

//雙擊列表播放private void lstMusiclist_DoubleClick(object sender, EventArgs e){MusicPlay(MusicList[ControlMusicList.SelectedIndex]);

播放子功能:

//各計(jì)時(shí)器狀態(tài)設(shè)置BIsMusicPlay = true;TimeMusicPlay.Enabled = true;TimeMusicLyric.Enabled = true;//音樂(lè)播放WMPlayer.URL = MusicPath;WMPlayer.Ctlcontrols.play();//設(shè)置播放/暫停的圖片ControlMusicPlay.BackgroundImage = Properties.Resources.pause;//從文件路徑獲取歌詞名稱(chēng)string[] lyricpaths = MusicPath.Split('\\', '.');string lyricname = lyricpaths[lyricpaths.Length - 2];//初始化歌詞類(lèi)MusicLyric = new LyricFiles();MusicLyric.LoadLyric(lyricname);//初始化歌詞顯示label//改背景圖片Loadbgimage(lyricname);

播放模式功能

//根據(jù)播放模式播放if (playmode == 0){//循環(huán)播放下一曲index++;if (index == ControlMusicList.Items.Count){index = 0;}}else if (playmode == 1){//隨機(jī)播放下一曲Random random = new Random();random.Next();index = random.Next() % ControlMusicList.Items.Count;//隨機(jī)的下一首不能與當(dāng)前一樣

歌詞類(lèi):

class LyricFiles{public List<Lyric> lstLyric = new List<Lyric>();public string[] Firstlyrics(double Curtime){int index = 0;int sentinel = 4;double time;//保存7行代碼返回string[] lyrics = new string[8];string[] newlyric = new string[8];newlyric[0] = newlyric[1] = newlyric[2] = newlyric[3] = null;for (int count = 0; count < 7; count++){lyrics[count] = lstLyric[count].Strlyric;}foreach (Lyric lyric in lstLyric){//全部化成double計(jì)算//如果大于等于就返回歌詞time = lyric.Minute * 60 + lyric.Second + lyric.Mmsec * 0.01;if (lyric != null){if (time <= Curtime){newlyric[0] = newlyric[1];newlyric[1] = newlyric[2];newlyric[2] = newlyric[3];

完整項(xiàng)目及其源碼如下:

MusicPlay_基于C#的音樂(lè)播放器-C#文檔類(lèi)資源-CSDN下載

總結(jié)

以上是生活随笔為你收集整理的基于C#的音乐播放器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。