当前位置: 首页 > news >正文

网站开发毕业论文引言发布软文网站

网站开发毕业论文引言,发布软文网站,怎么做好推广,成都app开发外包1. 作业内容 编写一个C#程序,要求实现常见音乐文件的播放功能,具体要求如下:     1). 播放MP3文件: 程序应能够读取MP3文件,并播放其中的音频。     2). 播放OGG文件: 应能够播放ogg文件。     …

1. 作业内容

    编写一个C#程序,要求实现常见音乐文件的播放功能,具体要求如下:
    1). 播放MP3文件: 程序应能够读取MP3文件,并播放其中的音频。
    2). 播放OGG文件: 应能够播放ogg文件。
    3). 用户界面: 一个简单的窗口,包含播放和暂停按钮以及文件选择功能。
    4). 异常处理: 程序应能够处理可能出现的异常,如文件不存在、文件读取错误等。
    5). 兼容性: 确保代码在多个C#版本上均可运行。

2. 设计思路分析与难点

2.1 架构选择

    考虑到需求中的界面友好和跨版本兼容性,我们可以选择选择Windows Forms作为开发平台,Windows Forms提供了一个简单而强大的方法来创建桌面应用程序,并且与C#高度兼容,在开发过程,我们选择.NETFramework 4.8.0进行程序设计。

2.2 设计思路

    1). 界面设计: 使用Windows Forms工具箱中的控件如按钮、标签和文件对话框构建用户界面。
    2). 功能编码: 使用OpenFileDialog允许用户选择音频文件。 根据文件扩展名调用相应的播放器对象进行播放。 播放控制,包括开始、暂停和停止。
    3). 异常处理: 捕获并响应各种可能的运行时错误,如文件读取失败、文件格式不支持等,为用户提供清晰的错误信息。

2.3 难点分析

    1). 文件格式支持: 处理多种音频格式(MP3,OGG等)要求使用不同的库,这可能导致代码复杂度增加。
    2). 异常处理: 音频文件的播放中可能遇到多种异常情况,如文件损坏、编解码器不支持等。

3. 窗体设计

    按照需求和功能分析,实现窗体如下:
窗体设计
    其中,各控件实现功能如下:
    Label:展示当前播放的歌曲。
    ListBox:展示选择的歌曲列表。
    AxWindowsMediaPlayer:用于播放常规格式音乐(ogg无法用此播放)。
    OpenFileDialog:用于选择音乐文件。
    Button:用于选择歌曲文件、停止播放、下一曲的功能实现。
    TrackBarl:用于音量控制。

4. 代码实现

4.0 类成员变量定义

List<string> localmusiclist = new List<string> { };
private WaveOutEvent waveOut = new WaveOutEvent();
private VorbisWaveReader currentVorbisReader;

    在类中,我们需要定义类成员变量,localmusiclist在音乐播放应用中用来追踪和管理用户加载的音乐文件集合,waveOut用于播放ogg文件,currentVorbisReader为当前使用的ogg文件实例。

4.1 文件选择功能

    函数定义:

private void button1_Click(object sender, EventArgs e)
{//功能实现见下方
}

    具体实现:

string[] files = { };openFileDialog1.Filter = "选择音频|*.mp3;*.flac;*.wav;*.ogg";
//同时打开多个文件
openFileDialog1.Multiselect = true;

    在这部分,我们采用buttonopenFileDialog控件来实现文件的选择,Filter用于筛选文件类型,使得用户只能选择音乐文件,不能选择其他文件导致后续功能无法实现报错,同时初始化一个files文件存放音乐文件的文件名。

if(openFileDialog1.ShowDialog() == DialogResult.OK)
{//清空原有列表listBox1.Items.Clear();localmusiclist.Clear();if (files !=  null){Array.Clear(files, 0, files.Length);}files = openFileDialog1.FileNames;string[] array = files;foreach(string file in array){listBox1.Items.Add(file);localmusiclist.Add(file);}
}

    这里我们对选择的文件进行处理,首先,将所有变量清空,防止有残留影响后续程序执行,之后,将文件名添加到ListBox中,显示出来用于选择音乐,同时,利用localmusiclist变量存储文件名,并且作为类成员变量进行传输,方便后续对音乐的操作。

openFileDialog1.ShowDialog() == DialogResult.OK

    其中,if条件判断openFileDialog是否接收到文件,不然不执行后续程序。

4.2 音乐选择功能

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{if(localmusiclist.Count > 0){axWindowsMediaPlayer1.URL = localmusiclist[listBox1.SelectedIndex];musicplay(axWindowsMediaPlayer1.URL);label1.Text = Path.GetFileNameWithoutExtension(localmusiclist[listBox1.SelectedIndex]);}
}

    在ListBox控件中,存在一个事件监听SelectedIndexChanged,利用该事件,我们可以去获取用户切换列表,SelectedIndex是获取目前列表中选择的序号,通过该序号和之前的localmusiclist,我们可以获取到音乐信息并且进行传参调用函数,进行后续的音乐播放。
ListBox中的列表信息
    同时,将Label的内容设置为音乐文件的信息并展示。
Label信息展示

4.3 音乐选择功能

    函数定义:

private void musicplay(string filename)
{//功能实现见下方
}

    具体实现:

string extension = Path.GetExtension(filename).ToLower();

    首先,获取当前文件名的后缀信息,判断文件类型。

if (extension == ".ogg")
{if (currentVorbisReader != null){// 确保先停止当前播放再释放资源if (waveOut.PlaybackState != PlaybackState.Stopped){waveOut.Stop();}currentVorbisReader.Dispose();}currentVorbisReader = new VorbisWaveReader(filename);waveOut.Init(currentVorbisReader);waveOut.Play();
}

    针对不同的文件类型,采用不同的处理方式:若是ogg文件,调用NAudio第三方库总的VorbisWave类来实现播放音乐。
    在播放新的音乐时,先检测当前是否有正在进行播放或者是暂停播放的ogg音乐,先进行处理再播放当前歌曲,可以防止同时初始化两次WaveOut产生播放异常。

else
{axWindowsMediaPlayer1.URL = filename;axWindowsMediaPlayer1.Ctlcontrols.play();
}

    若是其他类型的文件,使用C#原生库中的WindowsMediaPlayer控件实现播放。

4.4 暂停播放

private void button2_Click(object sender, EventArgs e)
{if (waveOut.PlaybackState == PlaybackState.Playing){waveOut.Pause(); // 暂停播放OGG}axWindowsMediaPlayer1.Ctlcontrols.stop(); // 停止其他格式的播放
}

    音乐暂停功能也需要先区分类型,如果waveOut的播放状态为正在播放,调用函数暂停音乐,否则就是调用WindowsMediaPlayer的暂停函数。

4.5 播放下一首&&循环播放

    函数定义:

private void button3_Click(object sender, EventArgs e)
{//功能实现见下方
}

    具体实现:

if(localmusiclist.Count > 0)
{//记录下一首音乐的索引int index = (listBox1.SelectedIndex + 1);axWindowsMediaPlayer1.URL = localmusiclist[index];musicplay(axWindowsMediaPlayer1.URL);label1.Text = Path.GetFileNameWithoutExtension(localmusiclist[index]);listBox1.SelectedIndex = index;
}

    这里采用索引来得到下一首音乐URL,再进行播放,同时更改Label的信息显示与SelectedIndex的当前索引。

if (index >= localmusiclist.Count())
{index = 0;
}

    在索引大于当前音乐列表的时候,将Index重置为零,从而实现循环播放功能。

4.6 音量控制

private void trackBar1_Scroll(object sender, EventArgs e)
{axWindowsMediaPlayer1.settings.volume = trackBar1.Value;
}

    直接将WindowsMediaPlayer的属性和TrackBar设置的值进行关联即可实现音乐播放事的音乐控制了。

5. 完整代码

    代码仓库:hmcy-zbx的windows课程设计作业

6. 总结&改进思路

    本次作业旨在通过导入第三方库辅助自己的程序设计与学习更复杂的控件使用和控件之间的联系,通过本次作业,我对于C#的控件使用掌握的更加深入了。
    尽管当前程序能实现较多的音乐文件格式播放,但是不能够实现最新的音乐文件解析,例如:ape文件与aac文件。
    并且,缺少高级音频功能的设置,例如增加音频效果处理(如均衡器、声音增强等)和支持音频流的直接下载和播放。

http://www.hkea.cn/news/187023/

相关文章:

  • 做网站有了空间在备案吗百度权重高的网站有哪些
  • 做空间的网站著名的网络营销案例
  • 做网站客户尾款老不给怎么办百度推广年费多少钱
  • 想要将网站信息插到文本链接怎么做百度关键词搜索
  • 江苏网站备案要多久seo域名综合查询
  • 大型网站建设机构津seo快速排名
  • 建设证件查询官方网站宁波做网站的公司
  • 那些网站招聘在家里做的客服网店推广策略
  • 湘西 网站 建设 公司sem代运营托管公司
  • 用css为wordpress排版西安seo外包服务
  • vs2005做网站百度推广官方网站登录入口
  • 乐从网站建设公司北京seo优化推广
  • 如何在网上接做网站的小项目市场监督管理局电话
  • 淘宝购物站优化
  • 石家庄最新疫情轨迹河南网站优化公司哪家好
  • 网站色彩搭配服务器ip域名解析
  • 哪个网站专业做安防如何注册域名网站
  • 穆棱市住房和城乡建设局网站关键词词库
  • 成都网站建设市场什么是网络营销的核心
  • 深圳找人做网站廊坊优化外包
  • 衡阳市城市建设投资有限公司网站湖南企业seo优化报价
  • css做网站常用百度权重优化软件
  • 合合肥网站建设制作网站用什么软件
  • 杭州网站设计公司推荐网络推广与优化
  • 移动惠生活app下载网址荆门网站seo
  • 做网站很赚钱吗关键词自助优化
  • wordpress小工具里的用户中心南京谷歌优化
  • 网站开发中茶叶网络营销策划方案
  • 临海市住房与城乡建设规划局 网站目前最新的营销模式有哪些
  • 高校建设网站的特色如何建立一个网站