【程序开发小记】VB.NET音乐播放器

写在前面的话:

为了营造一个很好的交流学习的环境,也是为了迎合学校毕业设计的需求,开通了博客园。在下学期伊始,会每星期更新毕业设计的进度。博客业已开通,为了交流学习,要只是更新毕业设计的进度显得有些做作。博主并不是好看书时写些小评的主儿,遂不知有和内容好献于此,只得将之前课程中或是实习时开发的程序在此做个简述。

因这些项目也是博主心血,也是怕某些学弟学妹直接搬用引发事端,不便将源码原封不动摆在这里,在此只做简要说明。

若有意愿交流学习,可以在评论或是私信留下联系方式。

话不多说,接下来直奔主题。

起初接到这个课题的时候有如下要求:

①本题要求完成视窗程序;

②界面设计美观、温馨和谐 / 炫酷抢眼;

③在用户操作时,有向用户提供的操作提示和反馈信息显示;

④能实现 MP3 等主要音频文件的打开、播放、暂停、停止;

⑤能管理播放队列,能对播放队列进行添加、删除、调整顺序等操作,能保存多个播放列表;

⑥在完成必要功能的基础上,可以跟出题教师交流学生个人的想法,在得到确认后可进一步设计更多与音乐文件播放有关的功能。

对于要求6,与出题教师交流,对音乐播放器加了歌词同步功能。

经需求分析后,得出功能示意图如下:

熟悉vb语言的同学看到这里相信对程序已经有一个大致的想法了,的确音乐播放器的开发并不难,可以学习的借鉴的示例也不少,不过vb.net在控件的使用上与vb上还是有很大的不同,相信这也是同样使用vb.net开发的同学共同的痛。

言归正传,音乐播放控制模块,实现音乐媒体文件的播放、暂停、切换等具体功能,提供较好的与用户交互的音乐控制界面,是音乐文件播放器的工具和门面。将音乐播放控制模块作为音乐控制的工具,主要通过WindowsMediaPlayer控件实现。多媒体应用是非常重要的一类应用,但.NET环境中并没有自带多媒体控件。本次实习采用的WindowsMediaPlayer控件不是系统IDE环境中自带的控件,但又是常用的一个重要控件。通过这个控件,我们可以写出多媒体播放例子,并对音乐播放的各种状态进行控制。

音乐列表管理方面,是音乐文件播放器的轴心。有效的管理音乐播放列表,是实现音乐自由切换、自由添加删除等功能的前提。实现该部分,选择采用DataGridView控件实现。众多教程和网络资源在完成同类任务时,多是选用ListBox控件。采用ListBox控件调用多个同时记录歌曲文件的文件名,URL等信息,这样做操作繁琐,且不利于统一管理,用户也不能直观的看到歌曲的多种信息。现采用DataGridView控件,DataGridView控件属于数据控件,在实现数据管理上具有明显优势。DataGridView控件可添加多列,且该控件可自行对数据按名称排序。另外将DataGridView控件的SelectionMode属性值设置为FullRowSelect后,可直接选中需求歌曲的全部信息,即选择歌曲文件名即为选择了歌曲的文件路径,减少了ListBox实现该功能的繁琐操作。DataGridView控件同时也便于将已添加信息存于到EXCEL表格文件中实现列表的单文件存储。

操作提示和反馈信息显示,主要是通过文件版本信息以用户反馈窗体以及部分案件可显示的气泡实现。是提高交互友好化的主要方法。

展示一下博主在开发该项目时的具体设计如下:

Form1:(播放控制窗体、音乐文件播放器主界面)

AxWindowsMediaPlayer1:多媒体控件,直接用于播放,多次调用。

Label1~12:当前播放音乐的标题、进度、总时长等信息显示,以及部分按键。

NotifyIcon1:托盘图标显示。

PictureBox1~5:主要用作按键的设置。

Timer1~4:用于对事件的监听,如刷新当前播放进度、判断播放是否停止。

TrackBar1:控制音量大小。

Form2:(播放列表窗体)

DataGridView1:记录播放列表。分为两列,分别记录文件名与文件路径。

Label1~4:播放列表的控制按键。

OpenFileDialog1:用于导入音乐文件。

Timer1~2:用于事件的监听。

Form3:(“关于”显示反馈方式及版本信息窗体)

Label1~7:用于文本显示。

LinkLabel1:显示制作者邮箱地址,可添加网络链接。

PictureBox1:显示播放器LOGO。

Form4:(桌面歌词窗体)

Button1:单击打开歌词文件。

DataGridView1:导入歌词。分为两列,分别为歌词标签时间与歌词。

Label1~2:显示当前时间与歌词。

OpenFileDialog1:歌词文件。

Timer1~2:监听事件。

可能存在困难的部分,在博主看来也就只有播放列表的读写,下贴出部分源码,可供大家借鉴学习一下。

播放列表导入(开启时):

Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick
        ‘开始阶段列表导入
        If Dir("d:\bofangliebiao.xlsx", FileAttribute.Normal) <> "" Then
            Dim MyExcel As New Microsoft.Office.Interop.Excel.Application()
            MyExcel.Visible = False
            MyExcel.Application.Workbooks.Open("d:\bofangliebiao.xlsx")
            Dim i As Integer = 1
            For i = 2 To MyExcel.Worksheets(1).usedrange.rows.count
                DataGridView1.Rows.Add(MyExcel.Worksheets(1).cells(i, 1).value, MyExcel.Cells(i, 2).value)
            Next i
            MyExcel.Workbooks.Close()
        End If

播放列表保存(关闭时):

 Private Sub Label6_Click(sender As Object, e As EventArgs) Handles Label6.Click
        ‘关闭按键()
        Dim MyExcel As New Microsoft.Office.Interop.Excel.Application()
        MyExcel.Application.Workbooks.Add(True)
        MyExcel.Visible = False
        Dim m As Integer
        For m = 0 To Form2.DataGridView1.ColumnCount - 1
            MyExcel.Cells(1, m + 1) = Form2.DataGridView1.Columns(m).HeaderText
        Next m
        ‘往excel表里添加数据()
        Dim i As Integer
        For i = 0 To Form2.DataGridView1.RowCount - 2
            Dim j As Integer
            For j = 0 To Form2.DataGridView1.ColumnCount - 1
                If Form2.DataGridView1(j, i).Value Is System.DBNull.Value Then
                    MyExcel.Cells(i + 2, j + 1) = ""
                Else
                    MyExcel.Cells(i + 2, j + 1) = Form2.DataGridView1(j, i).Value.ToString
                End If
            Next j
        Next i
        If Dir("d:\bofangliebiao.xlsx", FileAttribute.Normal) <> "" Then
            Call Kill("d:\bofangliebiao.xlsx")
        End If
        MyExcel.ActiveWorkbook.SaveAs("d:\bofangliebiao.xlsx")
        MyExcel.Workbooks.Close()
        ‘Form2.表1TableAdapter.Fill(Form2.PlaylistDataSet.表1)
        ‘Form2.表1TableAdapter.Update(Form2.PlaylistDataSet)
        Me.Close()
    End Sub

当然了歌词同步也是很有难度的,博主在写这部分的时候也遇到了挺多问题的,现在处理的话也是有些小bug的,就不贴出来了,有交流的可以私聊我。

写到这里了,秀一下博主的界面咯,这是当时写在报告里的带有功能介绍:

最后,推荐一个工程打包(安装包制作)软件给各位吧:advanced installer

欢迎一同交流哈~

时间: 2024-11-08 19:18:04

【程序开发小记】VB.NET音乐播放器的相关文章

Android开发实战之简单音乐播放器

最近开始学习音频相关.所以,很想自己做一个音乐播放器,于是,花了一天学习,将播放器的基本功能实现了出来.我觉得学习知识点还是蛮多的,所以写篇博客总结一下关于一个音乐播放器实现的逻辑.希望这篇博文对你的学习和生活有所帮助.效果图: **实现逻辑** 在市面上的音乐播放app,即时你关了.那么一样会在后台播放,所以播放的逻辑应该写在Service中.并且能够实现Service和Activity之间进行通信.那么Service是四大组件之一,所以在使用的时候一定不要忘了在配置文件中声明一下. <ser

安卓开发,实现简单音乐播放器

Android平台多媒体框架核心使用的是OpenCORE多媒体框架,在安卓系统中所有涉及音频视频的录制.解码.播放都是通过它来实现的.Android系统音频视频以及流媒体类型数据的播放有MediaPlayer类来完成. 下面进行一个实例来演示MediaPlayer的使用: 具体实现效果如下: 其中选项1,2,3分别是三种不同的音频加载方式: 方式1是内部加载,音频文件存放在/res/raw文件夹中, 方式2是本地加载,音频文件存放在本地SD卡中, 方式三为网络加载,音频文件从网络中获取. xml

Java音乐播放器-乐乐音乐(PC版)

乐乐音乐目前是基于musique开发的一个java音乐播放器,之前开发了一个android版本的音乐播放器,现在把android版本的代码移植过来PC版本这里.不过遇到了一个难题,就是java如果要播放mp3等歌曲,要安装jmf,我觉得安装这jmf真是太麻烦了,电脑是64位的伤不起啊.于是我从网上搜了一下,搜到了不少的开源播放器,如: (1)YOYOPlayer,感觉 YOYOPlayer整体上都不错,我的歌词也参考了一下它的实现,不过它在播放的时候,有一个问题,就是快进的时候,拖动条上显示的时

android调用音乐播放器,三种方

小弟想请问一下,如何在自己写的程序中调用系统的音乐播放器呢. 我在google上搜索了,主要是有两种方法,但是都不是我想要的. 第一种是,使用mp3音乐文件的uri,和intent,进行调用,但是这种是针对某一首歌曲的播放使用的. /** * 播放指定名称的歌曲 * @param audioPath 指定默认播放的音乐 */ public static void playAudio(String audioPath){ Intent mIntent = new Intent(); mIntent

iOS开发拓展篇—音频处理(音乐播放器6)

iOS开发拓展篇—音频处理(音乐播放器6) 一.图片处理 说明: Aspect表示按照原来的宽高比进行缩放. Aspectfit表示按照原来的宽高比缩放,要求看到全部图片,后果是不能完全覆盖窗口,会留有空白. Aspectfill表示按照原来的宽高比缩放,但只能看到部分图片.引发的问题:可能会有一部分超出屏幕. 所以,如果选择了Aspectfill模式,那么需要剪切超出的图片,在storyboard中也可以进行设置. 下面的两种设置是等效的. (1)在storyboard中进行设置 (2)使用代

微信公众号教程(20)微信音乐播放器开发 下

微信音乐播放器开发 五.音乐播放器前后端整合   在前两期教程中我们已经将前台播放器界面.后台音乐内容管理以及数据通讯接口完成了,现在要做的事情就是编写代码让前台播放器利用通讯接口来调用后台音乐内容,实现一些播放器操作. 之前的前台页面是实现播放器效果展现和离线播放,所以在整合的时候对之前的html代码做了一些调整,去除了音乐封面.音乐信息以及音乐url等,这里就不重点讲了,有兴趣的朋友可以将前后两个文件做个对比. 下面重点来讲如何使用JS来完成数据调用以及播放器操作,所有的代码都在第69行<s

Android开发---MediaPlayer简单音乐播放器

Android开发-MediaPlayer简单音乐播放器 功能介绍 实现一个简单的播放器,类似网易云音乐形式,功能包括: 播放.暂停,停止,退出功能: 后台播放功能: 进度条显示播放进度.拖动进度条改变进度功能: 播放时图片旋转,显示当前播放时间功能: 界面样式 功能实现 1. MediaPlayer的实现 MediaPlayer常用方法介绍 MediaPlayer的实现包括初始化MediaPlayer,MediaPlayer的功能实现,包括播放.暂停.停止.离开等,具体细节如下: MediaP

Flex4/Flash+BlazeDS+JAVA+MySql 开发在线音乐播放器实例

要求 必备知识 本文要求基本了解 Adobe Flex编程知识和JAVA基础知识. 开发环境 MyEclipse10/Flash Builder4.6/Flash Player11及以上 演示地址 演示地址 传统网络程序的开发是基于页面的.服务器端数据传递的模式,把网络程序的表现层建立于HTML页面之上,而HTML是适合于文本的,传统的基于页面的系统已经渐渐不能满足网络浏览者的更高的.全方位的体验要求了.而富互联网应用(Rich Internet Applications,缩写为RIA)的出现就

(菜鸟)vb.net2005 + access 音乐播放器

在大学的四年里,学到了一些皮毛.就想着怎么也得做出个自己所学的..后来,很迷茫.. 刚开始想做一个软件,能当毕业设计,想到了视频播放器的制作,不一定要有网络资源的那种 在网上找了很多的资料,现在简单的来说一下:第一需要制作"音频/视频解码器"这也太难了就视频格式就不下49种,音频格式就不低于30种,很苦恼.然后想在网上下载一个带有视频解码器的软件看看,但是很遗憾一般谁也不把自己的代码给你看,都是做完的.后来查着 查着,看到了一些关于快播的制作团队的贴着很火,就看了一下,是网友说的,主要