开源一个会议场合音乐播放辅助工具,
开发语言:易语言
工具主要是为了方便操作播放器,全依靠方向键,如下图:
软件注册了全局热键:↑、→、↓、←
用户只需要控制方向键即可,音乐可以设定手动播放、自动播放(选中歌曲右键菜单)。
以下是源码:
.版本 2
.支持库 shellEx
.支持库 iext
.支持库 eMMedia.程序集 窗口程序集_启动窗口
.程序集变量 播放热键, 整数型
.程序集变量 暂停热键, 整数型
.程序集变量 上一首热键, 整数型
.程序集变量 下一首热键, 整数型.子程序 __启动窗口_创建完毕
标题 = “会议歌曲播放辅助工具”
.如果真 (文件是否存在 (取运行目录 () + “\sysmp3.ini”) = 假)
写到文件 (取运行目录 () + “\sysmp3.ini”, #ini)
.如果真结束
扫描文件夹 ()
给文件上状态 ()
播放热键 = 注册热键 (_启动窗口.取窗口句柄 (), 标签1.取窗口句柄 (), 0, #右光标键)
暂停热键 = 注册热键 (_启动窗口.取窗口句柄 (), 标签1.取窗口句柄 (), 0, #左光标键)
上一首热键 = 注册热键 (_启动窗口.取窗口句柄 (), 标签1.取窗口句柄 (), 0, #上光标键)
下一首热键 = 注册热键 (_启动窗口.取窗口句柄 (), 标签1.取窗口句柄 (), 0, #下光标键).子程序 _自动播放_被选择
写配置项 (取运行目录 () + “\sysmp3.ini”, “MP3”, 超级列表框1.取标题 (超级列表框1.现行选中项, 0), “0”)
超级列表框1.置标题 (超级列表框1.现行选中项, 2, “自动播放”).子程序 扫描文件夹, , , MP3只能放在程序目录下
搜索文件夹 (取运行目录 (), “*.mp3”)
标签1.标题 = “就绪!”.子程序 搜索文件夹
.参数 目录, 文本型
.参数 后缀名, 文本型
.局部变量 temp, 文本型
.局部变量 a, 整数型.如果真 (取文本右边 (目录, 1) ≠ “\”)
目录 = 目录 + “\”
.如果真结束
输出调试文本 (目录)
temp = 寻找文件 (目录 + 后缀名, ).判断循环首 (temp ≠ “”)
处理事件 ()
.如果真 (temp ≠ “.” 且 temp ≠ “..”)
处理事件 ()
标签1.标题 = “当前文件:” + temp
a = 超级列表框1.插入表项 (0, temp, , , , )
超级列表框1.置标题 (a, 1, 目录 + temp)
超级列表框1.置标题 (a, 2, “0”).如果真结束
temp = 寻找文件 (, ).判断循环尾 ()
.子程序 _手动播放_被选择
写配置项 (取运行目录 () + “\sysmp3.ini”, “MP3”, 超级列表框1.取标题 (超级列表框1.现行选中项, 0), “1”)
超级列表框1.置标题 (超级列表框1.现行选中项, 2, “手动播放”).子程序 给文件上状态
.局部变量 i, 整数型
.局部变量 temp, 整数型.计次循环首 (超级列表框1.取表项数 (), i)
temp = 到数值 (读配置项 (取运行目录 () + “\sysmp3.ini”, “MP3”, 超级列表框1.取标题 (i - 1, 0), “0”))
.判断开始 (temp = 0)
超级列表框1.置标题 (i - 1, 2, “自动播放”)
.判断 (temp = 1)
超级列表框1.置标题 (i - 1, 2, “手动播放”)
.默认
超级列表框1.置标题 (i - 1, 2, “未知”)
.判断结束.计次循环尾 ()
.子程序 _超级列表框1_右键单击表项
.如果 (超级列表框1.取标题 (超级列表框1.现行选中项, 2) = “自动播放”)
自动播放.选中 = 真
.否则
自动播放.选中 = 假
.如果结束弹出菜单 (菜单, , )
.子程序 _按钮1_被单击_播放_被选择 ()
.子程序 _按钮2_被单击
_暂停_被选择 ()
.子程序 _按钮3_被单击
_下一首_被选择 ()
.子程序 _按钮4_被单击
_上一首_被选择 ()
.子程序 _播放_被选择
.局部变量 文件, 文本型
.如果 (媒体播放1.取状态 () = 1 且 全_继续播放 = 假)
媒体播放1.停止 ()
时钟1.时钟周期 = 0
标签1.标题 = “状态:停止”
按钮1.标题 = “播放”
进度条1.位置 = 0
.否则
全_继续播放 = 假
.如果真 (超级列表框1.现行选中项 = -1)
超级列表框1.现行选中项 = 0
超级列表框1.保证显示 (超级列表框1.现行选中项)
超级列表框1.获取焦点 ()
.如果真结束文件 = 超级列表框1.取标题 (超级列表框1.现行选中项, 1)
媒体播放1.打开 (文件)
媒体播放1.播放 (-1, )时钟1.时钟周期 = 1000
进度条1.最大位置 = 媒体播放1.取总时间 ()
分 = 取整 (媒体播放1.取总时间 () ÷ 60)
秒 = 媒体播放1.取总时间 () % 60
标签1.标题 = “正在播放:” + 超级列表框1.取标题 (超级列表框1.现行选中项, 0) + “ ” + 取文本右边 (“0” + 到文本 (分), 2) + “:” + 取文本右边 (“0” + 到文本 (秒), 2)
按钮1.标题 = “停止”
.如果结束超级列表框1.保证显示 (超级列表框1.现行选中项)
超级列表框1.获取焦点 ().子程序 _暂停_被选择
.如果 (媒体播放1.取状态 () = 1)
媒体播放1.暂停 ()
时钟1.时钟周期 = 0
标签1.标题 = “状态:暂停”
按钮2.标题 = “继续”
.否则
媒体播放1.播放 (进度条1.位置 × 1000, )
时钟1.时钟周期 = 1000
按钮2.标题 = “暂停”
标签1.标题 = “正在播放:” + 超级列表框1.取标题 (超级列表框1.现行选中项, 0) + “ ” + 取文本右边 (“0” + 到文本 (分), 2) + “:” + 取文本右边 (“0” + 到文本 (秒), 2)
.如果结束
超级列表框1.保证显示 (超级列表框1.现行选中项)
超级列表框1.获取焦点 ()
.子程序 _下一首_被选择.如果真 (超级列表框1.取表项数 () = 超级列表框1.现行选中项 + 1)
超级列表框1.现行选中项 = -1
.如果真结束
超级列表框1.现行选中项 = 超级列表框1.现行选中项 + 1
媒体播放1.停止 ()
时钟1.时钟周期 = 0
标签1.标题 = “状态:停止”
按钮1.标题 = “播放”
进度条1.位置 = 0
全_继续播放 = 真
_播放_被选择 ().子程序 _上一首_被选择
.如果真 (超级列表框1.现行选中项 = 0)
超级列表框1.现行选中项 = 超级列表框1.取表项数 ()
.如果真结束
超级列表框1.现行选中项 = 超级列表框1.现行选中项 - 1
媒体播放1.停止 ()
时钟1.时钟周期 = 0
标签1.标题 = “状态:停止”
按钮1.标题 = “播放”
进度条1.位置 = 0
全_继续播放 = 真
_播放_被选择 ().子程序 _时钟1_周期事件
.局部变量 i, 整数型
.局部变量 temp, 文本型.如果 (秒 = 0)
秒 = 59
分 = 分 - 1
.否则
秒 = 秒 - 1
.如果结束
标签1.标题 = “正在播放:” + 超级列表框1.取标题 (超级列表框1.现行选中项, 0) + “ ” + 取文本右边 (“0” + 到文本 (分), 2) + “:” + 取文本右边 (“0” + 到文本 (秒), 2)
进度条1.位置 = 进度条1.位置 + 1.如果真 (进度条1.位置 ≥ 进度条1.最大位置)
进度条1.位置 = 0
时钟1.时钟周期 = 0
temp = 超级列表框1.取标题 (超级列表框1.现行选中项 + 1, 2).如果 (temp = “自动播放”)
超级列表框1.现行选中项 = 超级列表框1.现行选中项 + 1
超级列表框1.保证显示 (超级列表框1.现行选中项)
超级列表框1.获取焦点 ()全_继续播放 = 真
_播放_被选择 ()
.否则
标签1.标题 = “状态:停止”
按钮1.标题 = “播放”超级列表框1.现行选中项 = 超级列表框1.现行选中项 + 1
超级列表框1.保证显示 (超级列表框1.现行选中项)
超级列表框1.获取焦点 ()
.如果结束.如果真结束
.子程序 __启动窗口_将被销毁撤销热键 (_启动窗口.取窗口句柄 (), 播放热键)
撤销热键 (_启动窗口.取窗口句柄 (), 暂停热键)
撤销热键 (_启动窗口.取窗口句柄 (), 上一首热键)
撤销热键 (_启动窗口.取窗口句柄 (), 下一首热键).子程序 _标签1_反馈事件, 整数型
.参数 参数一, 整数型
.参数 参数二, 整数型.判断开始 (参数一 = 播放热键)
_播放_被选择 ()
.判断 (参数一 = 暂停热键)
_暂停_被选择 ()
.判断 (参数一 = 上一首热键)
_上一首_被选择 ()
.判断 (参数一 = 下一首热键)
_下一首_被选择 ()
.默认.判断结束
以下是全局变量:
.版本 2
.全局变量 全_打开类型, 整数型
.全局变量 分, 整数型
.全局变量 秒, 整数型
.全局变量 全_继续播放, 逻辑型
文件下载地址:
链接:https://pan.baidu.com/s/1437Q4MCgIHr_RYdAmojXGw
提取码:mbmp
近期评论