|
注册登录后全站资源免费查看下载
您需要 登录 才可以下载或查看,没有账号?立即注册
×
成品+源码:https://wwz.lanzout.com/iOxYN09em3yd
边学边写,弄了三四天,分享出来给大家参考以下吧。
另外程序有个BUG,反复点击播放6-10次左右有概率直接把程序玩死。有大佬能帮忙看看啥问题就更好了~
- .版本 2
- .支持库 spec
-
- .程序集 窗口程序集_启动窗口
- .程序集变量 歌曲数, 整数型
- .程序集变量 歌单, 文本型, , "0"
- .程序集变量 i, 整数型, , , 第几首歌
- .程序集变量 s, 整数型, , , 歌曲播放进度
- .程序集变量 正在播放, 文本型
- .程序集变量 配置播放进度, 文本型
- .程序集变量 mp3状态, 整数型
- .程序集变量 播放状态展示, 文本型
- .程序集变量 播放列表展示内容, 文本型
- .程序集变量 运行目录, 文本型
- .程序集变量 运行目录长度, 整数型
- .程序集变量 文件名长度, 整数型
- .程序集变量 文件夹路径, 文本型
- .程序集变量 可否展示进度, 逻辑型
- .程序集变量 是否保存, 逻辑型
- .程序集变量 循环模式, 逻辑型
-
- .子程序 __启动窗口_创建完毕
-
- 运行目录 = 取运行目录 ()
- 选择框_保存进度.选中 = 读配置项 (取运行目录 () + “\播放进度.ini”, “保存进度”, “保存进度”, ) = “真”
- 单选框_列表循环.选中 = 读配置项 (取运行目录 () + “\播放进度.ini”, “循环模式”, “列表循环”, ) = “真”
- 单选框_单曲循环.选中 = 读配置项 (取运行目录 () + “\播放进度.ini”, “循环模式”, “单曲循环”, ) = “真”
- 单选框_随机播放.选中 = 读配置项 (取运行目录 () + “\播放进度.ini”, “循环模式”, “随机播放”, ) = “真”
- 置随机数种子 ()
-
- .如果真 (选择框_保存进度.选中)
- 配置播放进度 = 读配置项 (取运行目录 () + “\” + “播放进度.ini”, “歌曲列表”, “列表”, )
- .如果真结束
- s = 到整数 (读配置项 (取运行目录 () + “\” + “播放进度.ini”, “播放进度”, “进度”, ))
- 歌单 = 分割文本 (配置播放进度, “,”, )
- 歌曲数 = 取数组成员数 (歌单) ' 读取歌曲数
- 可否展示进度 = 真
-
-
- .如果真 (歌曲数 = 0 或 i = 0)
- 滑块条1.禁止 = 真
- .如果真结束
-
- .如果真 (s ≠ 0)
- 按钮_暂停继续播放.标题 = “继续播放”
- .如果真结束
-
- .计次循环首 (歌曲数, i) ' 添加播放进度到组合框1
- 组合框_音乐列表.加入项目 (歌单 [i] + #换行符, )
- .计次循环尾 ()
-
-
- .子程序 _按钮_选择文件_被单击
-
- ' 删除文件 (取运行目录 () + “\” + “播放进度.ini”)
- 歌单 = 多文件对话框 (“请选择”, “音乐文件.mp3|*.mp3”, , 取运行目录 (), , ) ' 载入播放进度
- 歌曲数 = 取数组成员数 (歌单) ' 读取歌曲数
- .如果真 (歌曲数 = 0)
- _按钮_选择文件_被单击 ()
- .如果真结束
- .计次循环首 (歌曲数, i)
- 配置播放进度 = 配置播放进度 + 歌单 [i] + “,”
- .计次循环尾 ()
-
- .如果真 (选择框_保存进度.选中)
- 写配置项 (取运行目录 () + “\” + “播放进度.ini”, “歌曲列表”, “列表”, 配置播放进度) ' 写播放进度
- .如果真结束
-
- .计次循环首 (歌曲数, i) ' 添加播放进度到组合框1
- 组合框_音乐列表.加入项目 (歌单 [i] + #换行符, )
- .计次循环尾 ()
-
-
- .子程序 _标签1_反馈事件, 整数型
- .参数 参数一, 整数型
- .参数 参数二, 整数型
-
- .如果真 (单选框_列表循环.选中)
- .如果真 (参数一 = 100)
- _按钮_下一首_被单击 () ' 播放完自动下一首
- .如果真结束
-
- .如果真结束
-
- .如果真 (单选框_单曲循环.选中)
- .如果真 (参数一 = 100)
- s = 0
- 播放 ()
- .如果真结束
-
- .如果真结束
-
-
- .如果真 (单选框_随机播放.选中)
- .如果真 (参数一 = 100)
- i = 取随机数 (1, 歌曲数)
- s = 0
- 播放 ()
- .如果真结束
-
- .如果真结束
-
- s = 参数一
- .如果真 (可否展示进度)
- 滑块条1.位置 = s
- .如果真结束
- .如果真 (歌曲数 ≠ 0)
- 滑块条1.禁止 = 假
- .如果真结束
-
- .如果真 (选择框_保存进度.选中)
-
- .如果真结束
-
-
- .子程序 播放
- .局部变量 歌曲名位置, 整数型
-
- 同步播放MP3 (歌单 [i], s, 标签1, ) ' 播放子程序
- 组合框_音乐列表.内容 = 歌单 [i]
-
-
- .子程序 _按钮_上一首_被单击
-
- .如果真 (单选框_随机播放.选中)
- i = 取随机数 (1, 歌曲数)
- s = 0
- 播放 ()
- .如果真结束
-
- .如果真 (单选框_列表循环.选中 或 单选框_单曲循环.选中)
- .如果真 (歌曲数 = 0)
- _按钮_选择文件_被单击 ()
- .如果真结束
- i = i - 1
- s = 0
- .如果真 (i < 1)
- i = 歌曲数
- .如果真结束
- 播放 ()
- .如果真结束
-
-
- .子程序 _按钮_下一首_被单击
-
- .如果真 (单选框_随机播放.选中)
- i = 取随机数 (1, 歌曲数)
- s = 0
- 播放 ()
- .如果真结束
-
- .如果真 (单选框_列表循环.选中 或 单选框_单曲循环.选中)
- .如果真 (歌曲数 = 0)
- _按钮_选择文件_被单击 ()
- .如果真结束
- i = i + 1
- s = 0
- .如果真 (i > 歌曲数)
- i = 1
- .如果真结束
- 播放 ()
-
- .如果真结束
-
-
- .子程序 __启动窗口_可否被关闭, 逻辑型
-
- .如果 (信息框 (“是否关闭当前窗口”, 1 + 32, “是否关闭当前窗口”, ) = 0) ' 关闭窗口前确认
- .如果真 (i ≠ 0)
- 写配置项 (取运行目录 () + “\播放进度.ini”, “保存进度”, “保存进度”, 选择 (选择框_保存进度.选中, “真”, “假”))
- 写配置项 (取运行目录 () + “\播放进度.ini”, “循环模式”, “列表循环”, 选择 (单选框_列表循环.选中, “真”, “假”))
- 写配置项 (取运行目录 () + “\播放进度.ini”, “循环模式”, “单曲循环”, 选择 (单选框_单曲循环.选中, “真”, “假”))
- 写配置项 (取运行目录 () + “\播放进度.ini”, “循环模式”, “随机播放”, 选择 (单选框_随机播放.选中, “真”, “假”))
-
- .如果真 (选择框_保存进度.选中)
- 写配置项 (取运行目录 () + “\” + “播放进度.ini”, “播放进度”, “曲目”, 到文本 (i)) ' 写播放进度
- .如果真结束
- .如果真 (选择框_保存进度.选中)
- 写配置项 (取运行目录 () + “\” + “播放进度.ini”, “播放进度”, “进度”, 到文本 (s)) ' 写播放进度
- .如果真结束
-
- .如果真结束
- 返回 (真)
- .否则
- 返回 (假)
- .如果结束
-
-
- .子程序 _组合框_音乐列表_将弹出列表
-
- .如果真 (歌曲数 = 0) ' 弹出列表时运行选择文件
- _按钮_选择文件_被单击 ()
- .如果真结束
-
-
- .子程序 _组合框_音乐列表_列表项被选择
- .局部变量 f, 整数型
-
- f = 组合框_音乐列表.现行选中项
- i = f + 1
- s = 0
- 播放 ()
-
- .子程序 _按钮_暂停继续播放_被单击
-
- mp3状态 = 取MP3播放状态 ()
- .判断开始 (mp3状态 = 0)
- i = 到整数 (读配置项 (取运行目录 () + “\” + “播放进度.ini”, “播放进度”, “曲目”, ))
- .如果真 (歌曲数 = 0)
- _按钮_选择文件_被单击 ()
- .如果真结束
- s = 到整数 (读配置项 (取运行目录 () + “\” + “播放进度.ini”, “播放进度”, “进度”, ))
- s = s - 1
- .如果真 (i > 歌曲数)
- i = 1
- .如果真结束
- .如果真 (i = 0)
- i = 1
- .如果真结束
- 按钮_暂停继续播放.标题 = “暂停播放”
- 播放 ()
- .判断 (mp3状态 = -1)
- 继续播放MP3 ()
- 按钮_暂停继续播放.标题 = “暂停播放”
- .判断 (mp3状态 = 1)
- 暂停播放MP3 ()
- 按钮_暂停继续播放.标题 = “继续播放”
- .默认
-
- .判断结束
-
-
- .子程序 _滑块条1_位置被改变
-
- 可否展示进度 = 假
- 同步播放MP3 (歌单 [i], 滑块条1.位置, 标签1, ) ' 播放子程序
- 可否展示进度 = 真
-
- .子程序 _选择框_保存进度_被单击
-
-
-
- .子程序 _单选框_列表循环_被单击
-
- 循环模式 = 单选框_列表循环.选中
- 调试输出 (循环模式)
-
-
- .子程序 _单选框_单曲循环_被单击
-
- 循环模式 = 单选框_单曲循环.选中
- 调试输出 (循环模式)
-
-
- .子程序 _单选框_随机播放_被单击
-
- 循环模式 = 单选框_列表循环.选中
- 调试输出 (循环模式)
复制代码
|
|