#用C#开发简单MP3播放器Word格式文档下载.docx

上传人:b****5 文档编号:19973405 上传时间:2023-01-13 格式:DOCX 页数:19 大小:352.19KB
下载 相关 举报
#用C#开发简单MP3播放器Word格式文档下载.docx_第1页
第1页 / 共19页
#用C#开发简单MP3播放器Word格式文档下载.docx_第2页
第2页 / 共19页
#用C#开发简单MP3播放器Word格式文档下载.docx_第3页
第3页 / 共19页
#用C#开发简单MP3播放器Word格式文档下载.docx_第4页
第4页 / 共19页
#用C#开发简单MP3播放器Word格式文档下载.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

#用C#开发简单MP3播放器Word格式文档下载.docx

《#用C#开发简单MP3播放器Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《#用C#开发简单MP3播放器Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。

#用C#开发简单MP3播放器Word格式文档下载.docx

控制模块中主要用到的是axWindowsmediaPlayer控件以及MenuStrip控件。

其中WindowsmediaPlayer控件用到的方法属性主要有:

axWindowsMediaPlayer1.BeginInit(>

//初始化

axWindowsMediaPlayer1.settings.autoStart。

//自动播放

axWindowsMediaPlayer1.settings.setMode("

shuffle"

false>

//顺序播放

axWindowsMediaPlayer1.settings.enableErrorDialogs。

axWindowsMediaPlayer1.settings.balance。

axWindowsMediaPlayer1.settings.mute。

axWindowsMediaPlayer1.settings.volume。

MenuStrip控件用到的方法事件有:

privatevoid打开文件ToolStripMenuItem1_Click(objectsender,EventArgse>

privatevoid添加歌曲ToolStripMenuItem_Click(objectsender,EventArgse>

privatevoid添加文件夹ToolStripMenuItem_Click(objectsender,EventArgse>

privatevoid退出ToolStripMenuItem_Click(objectsender,EventArgse>

privatevoid清空列表ToolStripMenuItem1_Click(objectsender,EventArgse>

privatevoid顺序播放ToolStripMenuItem_Click(objectsender,EventArgse>

privatevoid单曲循环ToolStripMenuItem_Click(objectsender,EventArgse>

privatevoid随机播放ToolStripMenuItem_Click(objectsender,EventArgse>

数据库设计或数据文件说明:

因为播放器使用数据量较小,故采用TXT保存歌曲文件列表。

使用的是文件处理。

设计思路:

播放器模块的设计结构如下:

三、测试:

测试用例列表:

F:

\Music\ALittleLove.mp3

\Music\ChristmasInMyHeart.mp3

\Music\Everytime.mp3

\Music\LivingToLoveYou.mp3

\Music\LoveParadise.mp3

\Music\LuckyTwice-MeAndYou.mp3

\Music\Morning.mp3

\Music\TravelingLight.mp3

\Music\TroubleIsAFriend.mp3

\Music\WishYouWereHere.mp3

\Music\YouandMe.mp3

\Music\Ψһ.mp3

\Music\一直很安静.mp3

\Music\一首简单的歌.mp3

\Music\七里香.mp3

\Music\下一个天亮.mp3

\Music\不再犹豫.mp3

\Music\不完整的旋律.mp3

\Music\东风破.mp3

\Music\依恋.mp3

\Music\依然爱你.mp3

\Music\光辉岁月.mp3

\Music\兰若词.mp3

\Music\再见理想.mp3

\Music\分手快乐.mp3

\Music\勇气.mp3

\Music\匿名的好友.mp3

\Music\单身美好.mp3

\Music\喜欢两个人.mp3

\Music\围巾.mp3

\Music\在树上唱歌.mp3

\Music\夜曲.mp3

\Music\大城小爱.mp3

\Music\天空.mp3

\Music\如果有一天.mp3

\Music\孤单北半球.mp3

\Music\孩子气.mp3

\Music\宁夏.mp3

\Music\左边.mp3

\Music\带我走.mp3

软件运行截图:

测试情况分析

经测试,软件运行情况基本良好,但单曲循环功能有些缺陷,有待改进,总体情况还算良好。

四、小结

这一次的课程设计开发的这个软件是我的第一个软件,看到它能够基本实现我想要的功能,感到非常开心,尽管还有很多缺陷。

在做这个软件的时候,遇到过很多问题,一开始觉得有问题上网找就是了,但在做的的时候却并不是如此,上网XX,用C#开发的播放器源码很多,教程也不少,但都讲的很乱,而且那些属性名,控件名,方法名之类的都和自己的不同,原理不懂,给你源码也没用。

没办法,就只能恶补,像各种控件的属性,尤其是axWindowsmediaPlayer控件的各种属性及使用方法<

这也是我这次课程设计最大的收获。

),文件处理等。

通过这次课程设计,我学到了很多课堂和书本学不到的东西,我觉得最重要的一点就是注意细节以及动手之前弄懂基本原理。

五、附录

用到的第三方控件或组件说明:

这个程序用到的第三方控件是axWindowsmediaPlayer控件,这个控件是一个COM组件,是windows自带的控件,用于播放媒体文件,在开发媒体播放器时使用是非常方便的。

程序的主要代码<

对应上面第二条):

窗体设计代码From1.cs:

usingSystem。

usingSystem.Collections.Generic。

usingSystem.ComponentModel。

usingSystem.Data。

usingSystem.Drawing。

usingSystem.Linq。

usingSystem.Text。

usingSystem.Windows.Forms。

usingSystem.IO。

namespaceMyMusicPlayer

{

publicpartialclassMusicPlayer:

Form

{

publicMusicPlayer(>

InitializeComponent(>

}

string[]musicPath=newstring[1000]。

//用于保存歌曲目录

intmusicCount=0。

privatevoidForm1_Load(objectsender,EventArgse>

myPlayer.BeginInit(>

myPlayer.settings.autoStart=true。

myPlayer.settings.setMode("

myPlayer.settings.enableErrorDialogs=true。

myPlayer.settings.balance=0。

myPlayer.settings.mute=false。

myPlayer.settings.volume=100。

//声音设为最大

if(File.Exists("

listbox.txt"

>

//如果存在播放列表,那么加载播放列表

{

StreamReaderreader=newStreamReader("

try

while(reader.Peek(>

!

=-1>

stringfilepath=reader.ReadLine(>

if(File.Exists(filepath>

musicPath[musicCount++]=filepath。

stringfilename=Path.GetFileName(filepath>

listBox1.Items.Add(filename>

//listbox用来显示歌曲名

myPlayer.currentPlaylist.insertItem(myPlayer.currentPlaylist.count,myPlayer.newMedia(filepath>

}

listBox1.SelectedIndex=0。

catch(Exception>

listBox1.SelectedIndex=-1。

MessageBox.Show("

加载播放列表失败或者列表为空!

"

"

提示"

MessageBoxButtons.OK,MessageBoxIcon.Error>

finally

reader.Close(>

//打开单首歌曲,但不加载到播放列表

DialogResultdr=openFileDialog1.ShowDialog(>

if(dr==DialogResult.OK>

myPlayer.URL=openFileDialog1.FileName。

//打开单首歌曲,并加载到播放列表

stringfilepath=openFileDialog1.FileName。

//打开媒体文件夹,并加载到播放列表

DialogResultdr=folderBrowserDialog1.ShowDialog(>

string[]filepath=Directory.GetFiles(folderBrowserDialog1.SelectedPath>

foreach(stringsinfilepath>

if(Path.GetExtension(s>

=="

.mp3"

stringfilename=Path.GetFileName(s>

musicPath[musicCount++]=s。

myPlayer.currentPlaylist.insertItem(myPlayer.currentPlaylist.count,myPlayer.newMedia(s>

//退出播放器并保存当前播放列表

myPlayer.Ctlcontrols.stop(>

myPlayer.close(>

StreamWriterwriter=newStreamWriter("

false,Encoding.Unicode>

//保存播放列表

for(inti=0。

i<

=musicCount-1。

i++>

if(musicPath[i]!

=string.Empty>

writer.WriteLine(musicPath[i]>

writer.Close(>

Application.Exit(>

privatevoidaxWindowsMediaPlayer1_PlayStateChange(objectsender,AxWMPLib._WMPOCXEvents_PlayStateChangeEvente>

//显示播放状态

if(myPlayer.playState==WMPLib.WMPPlayState.wmppsPlaying>

strings=myPlayer.currentMedia.sourceURL。

myPlayer.currentPlaylist.count。

if(listBox1.Items[i].ToString(>

==Path.GetFileName(s>

listBox1.SelectedIndex=i。

break。

//清空当前播放列表

//先停止播放器

listBox1.Items.Clear(>

//清空listbox

myPlayer.currentPlaylist.clear(>

//清空播放列表

for(intj=0。

j<

musicCount。

j++>

musicPath[j]="

privatevoidForm1_KeyPress(objectsender,KeyPressEventArgse>

if(char.Equals(e.KeyChar,'

'

myPlayer.Ctlcontrols.pause(>

//按列表顺序播放歌曲文件

myPlayer.settings.playCount=1。

if(musicPath[j]!

myPlayer.currentPlaylist.insertItem(myPlayer.currentPlaylist.count,myPlayer.newMedia(musicPath[j]>

myPlayer.Ctlcontrols.playItem(myPlayer.currentPlaylist.get_Item(0>

//单曲循环

if(listBox1.SelectedIndex!

=-1&

&

listBox1.Items.Count>

0>

intk=listBox1.SelectedIndex。

1000。

myPlayer.currentPlaylist.insertItem(myPlayer.currentPlaylist.count,myPlayer.newMedia(musicPath[k]>

//随机播放列表歌曲文件

Randomrd=newRandom(DateTime.Now.Millisecond>

intj=rd.Next(0,musicCount>

privatevoidlistBox1_SelectedIndexChanged(objectsender,EventArgse>

//点击列表歌曲时播放

intj=listBox1.SelectedIndex。

if(listBox1.Items.Count>

0&

listBox1.SelectedIndex>

=0>

myPlayer.Ctlcontrols.playItem(myPlayer.currentPlaylist.get_Item(listBox1.SelectedIndex>

}

程序入口代码Program.cs:

usingSystem.Runtime.InteropServices。

usingMicrosoft.Win32。

usingSystem.Threading。

staticclassProgram

/*显示已经运行程序的主界面*/

[DllImport("

user32.dll"

EntryPoint="

ShowWindow"

]

staticexternboolShowWindow(IntPtrhandle,intflags>

//显示窗口

SetForegroundWindow"

staticexternboolSetForegroundWindow(IntPtrhandle>

//将窗口置最前

///<

summary>

///应用程序的主入口点。

/summary>

[STAThread]

staticvoidMain(>

Application.EnableVisualStyles(>

Application.SetCompatibleTextRenderingDefault(false>

Application.Run(newMusicPlayer(>

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1