易语言MP3音乐播放器源码
系统结构:窗口透明,初始化播放进度,初始化音量,保存列表,载入列表,打开MP3文件,取消已选择,电子时钟,秒数转换,取短文件名,递归寻找MP3,取MP3歌曲名与时间,删除无用字节,设置广播状态,取消广播状态,保存日志文件,添加按钮提示,读入控件数据,载入皮肤,置按钮组件坐标,置画板组件坐标,置超级列表框组件坐标,置高级选择夹组件坐标,置标签组件坐标,置窗口坐标,生成菜单,添加系统菜单,创建完毕,画渐变矩形,新窗口过程,透明窗口,动态读取MP3频谱数据,清空列表,添加目录,优先播放,添加文件,清除选定文件,保存定时列表,载入定时列表,保存报时列表,载入报时列表,生成菜单2,创建完毕2,新窗口过程2,读MP3标签V1,是否有V1标签,读MP3标签V2,是否有V2标签,读V2标签长度,读MP3标签V2框架信息,转换流派,字节集倒序,构造MP3流派查询表之文字,取MP3信息,比较播放时间是否重叠,中心_错误处理中心,捕获鼠标,释放鼠标,取系统菜单,删除菜单项目,添加菜单项,插入菜单条目,显示关于,SetWindowLong1,置窗口特征,执行窗口程序,自定义弹出菜单,取鼠标位置,CreateMenu,SetMenuItemBitmaps,CreatePopupMenu,设置菜单单选,CopyMemory_mis,CopyMemory_dis,BASS_GetVersion,BASS_Init,BASS_Free,BASS_StreamCreateFile,BASS_ChannelPlay,BASS_ChannelPause,BASS_ChannelStop,BASS_ChannelBytes2Seconds,BASS_ChannelGetPosition,BASS_ChannelSetPosition,BASS_ChannelGetLength,BASS_ChannelSeconds2Bytes,BASS_ChannelGetAttributes,BASS_ChannelSetAttributes,BASS_StreamFree,BASS_ChannelIsActive,BASS_ChannelGetLevel,BASS_ChannelGetData,SetProcessWorkingSetSize,SetLayeredWindowAttributes,GetWindowLongA,SetWindowLongA,列表头数据,保存控件数据,
======窗口程序集1
| |
| |------ _播放按钮_被单击
| |
| |------ _启动子程序
| |
| |------ _启动窗口_创建完毕
| |
| |------ 窗口透明
| |
| |------ _最小化按钮_被单击
| |
| |------ 初始化播放进度
| |
| |------ 初始化音量
| |
| |------ _关闭按钮_被单击
| |
| |------ 保存列表
| |
| |------ 载入列表
| |
| |------ _音量按钮_鼠标左键被按下
| |
| |------ _音量按钮_鼠标左键被放开
| |
| |------ _音量按钮_鼠标位置被移动
| |
| |------ _音量滑条_鼠标左键被按下
| |
| |------ _音量滑条蓝色_鼠标左键被按下
| |
| |------ _系统音量1_静音改变
| |
| |------ _喇叭钮_被单击
| |
| |------ _喇叭钮1_被单击
| |
| |------ _系统音量1_音量改变
| |
| |------ _列表按钮_被单击
| |
| |------ _启动窗口_位置被改变
| |
| |------ 打开MP3文件
| |
| |------ _播放滑条蓝色_鼠标左键被放开
| |
| |------ _播放位置按钮_鼠标左键被按下
| |
| |------ _播放位置按钮_鼠标左键被放开
| |
| |------ 取消已选择
| |
| |------ _暂停按钮_被单击
| |
| |------ _停止按钮_被单击
| |
| |------ _播放时钟_周期事件
| |
| |------ 电子时钟
| |
| |------ 秒数转换
| |
| |------ _图标按钮_被单击
| |
| |------ _启动窗口_将被销毁
| |
| |------ _下一首按钮_被单击
| |
| |------ _上一首按钮_被单击
| |
| |------ 取短文件名
| |
| |------ 递归寻找MP3
| |
| |------ _退出_被选择
| |
| |------ _关于_被选择
| |
| |------ _启动窗口_按下某键
| |
| |------ _启动窗口_鼠标右键被放开
| |
| |------ 取MP3歌曲名与时间
| |
| |------ 删除无用字节
| |
| |------ _启动窗口_托盘事件
| |
| |------ _启动窗口_被隐藏
| |
| |------ _启动窗口_被显示
| |
| |------ 设置广播状态
| |
| |------ 取消广播状态
| |
| |------ 保存日志文件
| |
| |------ _返回按钮_被单击
| |
| |------ _广播时钟_周期事件
| |
| |------ _最小化窗口_被选择
| |
| |------ _启动窗口_首次激活
| |
| |------ _查看日志文件_被选择
| |
| |------ 添加按钮提示
| |
| |------ 读入控件数据
| |
| |------ _播放滑条_被单击
| |
| |------ _启动窗口_鼠标位置被移动
| |
| |------ _载入默认皮肤_被选择
| |
| |------ 载入皮肤
| |
| |------ 置按钮组件坐标
| |
| |------ 置画板组件坐标
| |
| |------ 置超级列表框组件坐标
| |
| |------ 置高级选择夹组件坐标
| |
| |------ 置标签组件坐标
| |
| |------ 置窗口坐标
| |
| |------ 生成菜单
| |
| |------ 添加系统菜单
| |
| |------ 创建完毕
| |
| |------ 画渐变矩形
| |
| |------ 新窗口过程
| |
| |------ 透明窗口
| |
| |------ _透明度按钮_被单击
| |
| |------ 动态读取MP3频谱数据
| |
| |
======窗口程序集2
| |
| |------ _列表窗口_创建完毕
| |
| |------ _随机按钮_被单击
| |
| |------ _播放列表框_被双击
| |
| |------ _列表窗口_可否被关闭
| |
| |------ 清空列表
| |
| |------ 添加目录
| |
| |------ _播放列表框_右键单击表项
| |
| |------ _查看日志文件_被选择
| |
| |------ 优先播放
| |
| |------ 添加文件
| |
| |------ 清除选定文件
| |
| |------ _播放列表框_按下某键
| |
| |------ _优先播放按钮_被单击
| |
| |------ _添加文件按钮_被单击
| |
| |------ _清除文件按钮_被单击
| |
| |------ _添加目录按钮_被单击
| |
| |------ _清空列表按钮_被单击
| |
| |------ _定时添加文件_被单击
| |
| |------ 保存定时列表
| |
| |------ 载入定时列表
| |
| |------ 保存报时列表
| |
| |------ 载入报时列表
| |
| |------ _定时修改_被单击
| |
| |------ _定时播放列表框_放开某键
| |
| |------ _定时播放列表框_被双击
| |
| |------ _定时删除_被单击
| |
| |------ _定时全部清空_被单击
| |
| |------ _定时播放列表框_右键单击表项
| |
| |------ _报时播放列表框_右键单击表项
| |
| |------ _关闭按钮_被单击
| |
| |------ _列表窗口_被显示
| |
| |------ _列表窗口_被激活
| |
| |------ 生成菜单2
| |
| |------ 创建完毕2
| |
| |------ 新窗口过程2
| |
| |------ _透明度按钮2_被单击
| |
| |
======MP3信息类
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 读MP3标签V1
| |
| |------ 是否有V1标签
| |
| |------ 读MP3标签V2
| |
| |------ 是否有V2标签
| |
| |------ 读V2标签长度
| |
| |------ 读MP3标签V2框架信息
| |
| |------ 转换流派
| |
| |------ 字节集倒序
| |
| |------ 构造MP3流派查询表之文字
| |
| |
======窗口程序集4
| |
| |------ _按钮1_被单击
| |
| |------ _关于窗口_创建完毕
| |
| |------ _关于窗口_将被销毁
| |
| |
======窗口程序集5
| |
| |------ _MP3信息窗口_创建完毕
| |
| |------ 取MP3信息
| |
| |------ _确定_被单击
| |
| |------ _MP3信息窗口_将被销毁
| |
| |
======窗口程序集6
| |
| |------ _时钟编辑框_按下某键
| |
| |------ _时钟编辑框_失去焦点
| |
| |------ _分钟编辑框_按下某键
| |
| |------ _分钟编辑框_失去焦点
| |
| |------ _秒钟编辑框_按下某键
| |
| |------ _秒钟编辑框_失去焦点
| |
| |------ _取消按钮_被单击
| |
| |------ _修改定时广播_创建完毕
| |
| |------ _确定按钮_被单击
| |
| |------ 比较播放时间是否重叠
| |
| |------ _分钟编辑框_获得焦点
| |
| |------ _秒钟编辑框_获得焦点
| |
| |------ _时钟编辑框_获得焦点
| |
| |------ _修改定时广播_将被销毁
| |
| |
======窗口程序集7
| |
| |------ _返回按钮_被单击
| |
| |------ _日志窗口_创建完毕
| |
| |------ _清空按钮_被单击
| |
| |------ _日志窗口_将被销毁
| |
| |
======错误处理中心
| |
| |------ 中心_错误处理中心
| |
| |
======调用的Dll
| |
| |---[dll]------ 捕获鼠标
| |
| |---[dll]------ 释放鼠标
| |
| |---[dll]------ 取系统菜单
| |
| |---[dll]------ 删除菜单项目
| |
| |---[dll]------ 添加菜单项
| |
| |---[dll]------ 插入菜单条目
| |
| |---[dll]------ 显示关于
| |
| |---[dll]------ SetWindowLong1
| |
| |---[dll]------ 置窗口特征
| |
| |---[dll]------ 执行窗口程序
| |
| |---[dll]------ 自定义弹出菜单
| |
| |---[dll]------ 取鼠标位置
| |
| |---[dll]------ CreateMenu
| |
| |---[dll]------ SetMenuItemBitmaps
| |
| |---[dll]------ CreatePopupMenu
| |
| |---[dll]------ 设置菜单单选
| |
| |---[dll]------ CopyMemory_mis
| |
| |---[dll]------ CopyMemory_dis
| |
| |---[dll]------ BASS_GetVersion
| |
| |---[dll]------ BASS_Init
| |
| |---[dll]------ BASS_Free
| |
| |---[dll]------ BASS_StreamCreateFile
| |
| |---[dll]------ BASS_ChannelPlay
| |
| |---[dll]------ BASS_ChannelPause
| |
| |---[dll]------ BASS_ChannelStop
| |
| |---[dll]------ BASS_ChannelBytes2Seconds
| |
| |---[dll]------ BASS_ChannelGetPosition
| |
| |---[dll]------ BASS_ChannelSetPosition
| |
| |---[dll]------ BASS_ChannelGetLength
| |
| |---[dll]------ BASS_ChannelSeconds2Bytes
| |
| |---[dll]------ BASS_ChannelGetAttributes
| |
| |---[dll]------ BASS_ChannelSetAttributes
| |
| |---[dll]------ BASS_StreamFree
| |
| |---[dll]------ BASS_ChannelIsActive
| |
| |---[dll]------ BASS_ChannelGetLevel
| |
| |---[dll]------ BASS_ChannelGetData
| |
| |---[dll]------ SetProcessWorkingSetSize
| |
| |---[dll]------ SetLayeredWindowAttributes
| |
| |---[dll]------ GetWindowLongA
| |
| |---[dll]------ SetWindowLongA
======窗口程序集1
| |
| |------ _保存_被单击
| |
| |------ 列表头数据
| |
| |------ 保存控件数据
| |
| |------ __启动窗口_创建完毕
调用的DLL命令:
.DLL命令 捕获鼠标, 整数型, , "SetCapture"
.参数 句柄, 整数型, , 接收所有鼠标输入的窗口的句柄
.DLL命令 释放鼠标, 整数型, , "ReleaseCapture"
.DLL命令 取系统菜单, 整数型, , "GetSystemMenu", , 获取系统原始菜单
.参数 hWnd, 整数型
.参数 bRevert, 逻辑型
.DLL命令 删除菜单项目, 整数型, , "RemoveMenu", , 移除系统原始菜单项
.参数 hMenu
.参数 nPosition
.参数 wFlags
.DLL命令 添加菜单项, 整数型, , "AppendMenuA", , 在指定的菜单里添加一个菜单项 非零表示成功,零表示失败。会设置GetLastError
.参数 菜单句柄, 整数型, , 菜单句柄
.参数 菜单常数标志, 整数型, , 参考ModifyMenu函数中的菜单常数标志定义表,其中列出了允许使用的所有常数
.参数 新菜单条目ID, 整数型, , 指定菜单条目的新命令ID。如果在wFlags参数中指定了MF_POPUP字段,那么这应该是指向一个弹出式菜单的句柄
.参数 标志值, 文本型, , (相应的vb声明见注解),如果在wFlags参数中指定了MF_STRING标志,这就代表在菜单中设置的字串。如设置了MF_BITMAP标志,这就代表一个Long型变量,其中包含了一个位图句柄。如设置了MF_OWNERDRAW,这个值就会包括在DRAWITEMSTRUCT和MEASUREITEMSTRUCT结构中,在条目需要重画的时候由windows发送出去
.DLL命令 插入菜单条目, 整数型, "user32.dll", "InsertMenuA", 公开, 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动 非零表示成功,零表示失败。会设置GetLastError
.参数 菜单句柄, 整数型, , 菜单的句柄
.参数 插入点标志符, 整数型, , 定义了新条目插入点的一个现有菜单条目的标志符。如果在wFlags中指定了MF_BYCOMMAND标志,这个参数就代表欲改变的菜单条目的命令ID。如设置的是MF_BYPOSITION标志,这个参数就代表菜单条目在菜单中的位置,第一个条目的位置为零
.参数 常数标志, 整数型, , 一系列常数标志的组合。参考ModifyMenu
.参数 新条目ID, 整数型, , 指定菜单条目的新菜单ID。如果在wFlags中指定了MF_POPUP标志,就应该指定弹出式菜单的一个句柄
.参数 条目内容, 文本型, , 如果在wFlags参数中设置了MF_STRING标志,就代表要设置到菜单中的字串()。如设置的是MF_BITMAP标志,就代表一个Long型变量,其中包含了一个位图句柄
.DLL命令 显示关于, 整数型, "shell32.dll", "ShellAboutA"
.参数 句柄, 整数型
.参数 程序, 文本型
.参数 其他成员, 文本型
.参数 图标, 整数型
.DLL命令 SetWindowLong1, 整数型, , "SetWindowLongA"
.参数 hwnd, 整数型
.参数 nIndex, 整数型
.参数 dwNewLong, 整数型
.DLL命令 置窗口特征, 子程序指针, , "SetWindowLongA"
.参数 hwnd, 整数型
.参数 nIndex, 整数型
.参数 dwNewLong, 子程序指针
.DLL命令 执行窗口程序, 整数型, , "CallWindowProcA"
.参数 lpPrevWndFunc, 子程序指针
.参数 hWnd, 整数型
.参数 Msg, 整数型
.参数 wParam, 整数型
.参数 lParam, 整数型
.DLL命令 自定义弹出菜单, 整数型, "user32.dll", "TrackPopupMenu", , 在屏幕的任意地方显示一个弹出式菜单 非零表示成功,零表示失败。会设置GetLastError
.参数 hMenu, 整数型, , 弹出式菜单的句柄
.参数 wFlags, 整数型, , 位置标志和鼠标追踪标志的组合,见下表
位置标志:说明
TPM_CENTERALIGN:菜单在指定位置水平居中
TPM_LEFTALIGN:菜单的左侧置于水平x坐标处
TPM_RIGHTALIGN:菜单的右侧置于水平x坐标处
TPM_LEFTBUTTON:鼠标左键标准运作方式
TPM_RIGHTBUTTON:用鼠标右键进行菜单追踪
.参数 x, 整数型, , 这个点指定了弹出式菜单在屏幕坐标系统中的位置
.参数 y, 整数型, , 同上
.参数 nReserved, 整数型, , 未使用,设为零
.参数 hwnd, 整数型, , 用于接收弹出式菜单命令的窗口的句柄。应该使用窗体的窗口句柄——窗体中有一个菜单能象弹出式菜单那样接收相同的命令ID集
.参数 lprc, RECT, , Rect,用屏幕坐标定义的一个矩形,如用户在这个矩形的范围内单击,则弹出式菜单不会关闭。如单击弹出式菜单之外的任何一个地方,则会关闭菜单。可以设为NULL
.DLL命令 取鼠标位置, 整数型, "user32.dll", "GetCursorPos", , 获取鼠标指针的当前位置 非零表示成功,零表示失败。会设置GetLastError
.参数 位置, POINTAPI, , POINTAPI,随同指针在屏幕像素坐标中的位置载入的一个结构
.DLL命令 CreateMenu, 整数型, "user32", "CreateMenu"
.DLL命令 SetMenuItemBitmaps, 整数型, , "SetMenuItemBitmaps"
.参数 hMenu, 整数型
.参数 nPosition, 整数型
.参数 wFlags, 整数型
.参数 hBitmapUnchecked, 整数型
.参数 hBitmapChecked, 整数型
.DLL命令 CreatePopupMenu, 整数型, "user32", "CreatePopupMenu"
.DLL命令 设置菜单单选, , "user32", "CheckMenuRadioItem", , 由这个函数做出的改动可以正常发挥作用,但不会由vb菜单的checked属性反映出来
.参数 hMenu, 整数型, , 菜单名柄
.参数 nu1, 整数型, , 组内第一个位置或菜单ID
.参数 nu2, 整数型, , 组内最后一们位置或菜单ID
.参数 un3, 整数型, , 欲复选的位置或菜单ID
.参数 un4, 整数型, , 下述标志之一 :如un1,un2,un3引用菜单条目的位置(第一个肯定在位置0处),就设为MF_BYPOSITION;如它们引用的是菜单ID,则设为MF_BYCOMMAND
.DLL命令 CopyMemory_mis, , "kernel32", "RtlMoveMemory", ,
.参数 pDest, MEASUREITEMSTRUCT, , 长度:24
.参数 pSrc, 整数型
.参数 ByteLen, 整数型
.DLL命令 CopyMemory_dis, , "kernel32", "RtlMoveMemory", ,
.参数 pDest, DRAWITEMSTRUCT, , 长度:48
.参数 pSrc, 整数型
.参数 ByteLen, 整数型
.DLL命令 BASS_GetVersion, 整数型, "bass.dll", "BASS_GetVersion"
.DLL命令 BASS_Init, 逻辑型, "bass.dll", "BASS_Init", , MediaInitialization
.参数 device, 整数型
.参数 freq, 整数型
.参数 flags, 整数型
.参数 win, 整数型
.参数 clsid, 整数型
.DLL命令 BASS_Free, , "bass.dll", "BASS_Free", , 释放
.DLL命令 BASS_StreamCreateFile, 整数型, "bass.dll", "BASS_StreamCreateFile", , 打开文件
.参数 mem, 逻辑型
.参数 f, 文本型, 传址
.参数 offset, 整数型
.参数 length, 整数型
.参数 flags, 整数型
.DLL命令 BASS_ChannelPlay, 逻辑型, "bass.dll", "BASS_ChannelPlay", , 播放
.参数 handle, 整数型
.参数 restart, 逻辑型, , 开始否?
.DLL命令 BASS_ChannelPause, 整数型, "bass.dll", "BASS_ChannelPause", , 暂停
.参数 handle, 整数型
.DLL命令 BASS_ChannelStop, , "bass.dll", "BASS_ChannelStop", , 停止
.参数 handle, 整数型
.DLL命令 BASS_ChannelBytes2Seconds, 小数型, "bass.dll", "BASS_ChannelBytes2Seconds", , 通过指针取位置/s
.参数 handle, 整数型
.参数 pos, 整数型
.参数 poshigh, 整数型
.DLL命令 BASS_ChannelGetPosition, 整数型, "bass.dll", "BASS_ChannelGetPosition"
.参数 handle, 整数型
.DLL命令 BASS_ChannelSetPosition, 整数型, "bass.dll", "BASS_ChannelSetPosition", , 设定当前位置
.参数 handle, 整数型
.参数 pos, 整数型
.参数 mode, 整数型
.DLL命令 BASS_ChannelGetLength, 整数型, "bass.dll", "BASS_ChannelGetLength", , 取流长度指针
.参数 handle, 整数型
.DLL命令 BASS_ChannelSeconds2Bytes, 整数型, "bass.dll", "BASS_ChannelSeconds2Bytes", , 当前位置指针
.参数 handle, 整数型
.参数 pos, 小数型
.DLL命令 BASS_ChannelGetAttributes, 整数型, "bass.dll", "BASS_ChannelGetAttributes", , getvol
.参数 handle, 整数型
.参数 freq, 整数型, 传址
.参数 volume, 整数型, 传址
.参数 pan, 整数型, 传址
.DLL命令 BASS_ChannelSetAttributes, 整数型, "bass.dll", "BASS_ChannelSetAttributes", , setvol
.参数 handle, 整数型
.参数 freq, 整数型
.参数 volume, 整数型
.参数 pan, 整数型
.DLL命令 BASS_StreamFree, 整数型, "bass.dll", "BASS_StreamFree", , 释放选中歌曲
.参数 handle, 整数型
.DLL命令 BASS_ChannelIsActive, 整数型, "bass.dll", "BASS_ChannelIsActive", , 状态
.参数 handle, 整数型
.DLL命令 BASS_ChannelGetLevel, 整数型, "bass.dll", "BASS_ChannelGetLevel", , 声道峰值
.参数 handle, 整数型
.DLL命令 BASS_ChannelGetData, 整数型, "bass.dll", "BASS_ChannelGetData", , FFT
.参数 handle, 整数型
.参数 buffer, 小数型, 数组
.参数 length, 整数型
.DLL命令 SetProcessWorkingSetSize, 整数型, "kernel32", "SetProcessWorkingSetSize", , ; 设置操作系统实际划分给进程使用的内存容量 非零表示成功,零表示失败。会设置GetLastError
.参数 hProcess, 整数型, , 指定一个进程的句柄
.参数 dwMinimumWorkingSetSize, 整数型, , 用于装载最小进程容量的一个变量
.参数 dwMaximumWorkingSetSize, 整数型, , 用于装载最大进程容量的一个变量适用平台Windows NT;
.DLL命令 SetLayeredWindowAttributes, 整数型, , "SetLayeredWindowAttributes"
.参数 hwnd, 整数型
.参数 crkey, 整数型
.参数 alpha, 字节型
.参数 dwflags, 整数型
.DLL命令 GetWindowLongA, 整数型, , "GetWindowLongA"
.参数 hwnd, 整数型
.参数 nIndex, 整数型
.DLL命令 SetWindowLongA, 整数型, , "SetWindowLongA"
.参数 hwnd, 整数型
.参数 nindex, 整数型
.参数 hnew, 整数型
易语言类QQ窗口源码,类QQ窗口...
易语言电子蚊香源码,beep...
易语言歌词秀源码,排序LRC时间内容,MCI控制...
易语言会打字就会弹钢琴码重发正传源码,设置编辑框只读状态,构造乐谱列表,取常量中的每分钟拍数,取常量中的乐谱,置MIDI组件,演奏音符,停止演奏音符,处理按下某键,处理放开某键,构造...
易语言摄像头演示源码,capCreateCaptureWindow,SendMessageStr,SendMessage...
排序LRC时间内容,MCI控制...
简易MP3播放器源码...
设置编辑框只读状态,构造乐谱列表,取常量中的每分钟拍数,取常量中的乐谱,置MIDI组件,演奏音符,停止演奏音符,处理按下某键,处理放开某键,构造音符对照表,添加键代码音符对,添加字符音符对,查询键代码对应音符,播放乐谱,计算音符播放时间,停止播放乐谱...
出题,标签显示,提示,音乐程序...