自己写了个易语言播放器练手,程序莫名其妙卡死,请大佬帮忙看看
如果反复点击播放按钮,4-6次左右程序就会被卡死,也不报错。实在找不到原因了,请大佬帮忙指点指点,万分感谢~蓝奏云:
https://wwz.lanzout.com/iQs3r09ax01e
.版本 2
.支持库 spec
.程序集 窗口程序集_启动窗口
.程序集变量 歌曲数, 整数型
.程序集变量 播放列表, 文本型, , "0"
.程序集变量 i, 整数型, , , 第几首歌
.程序集变量 s, 整数型, , , 歌曲播放进度
.程序集变量 正在播放, 文本型
.程序集变量 配置播放列表, 文本型
.程序集变量 mp3状态, 整数型
.程序集变量 播放状态展示, 文本型
.子程序 __启动窗口_创建完毕
配置播放列表 = 读配置项 (取运行目录 () + “\” + “播放列表.txt”, “播放列表”, “列表”, )
播放列表 = 分割文本 (配置播放列表, “,”, )
歌曲数 = 取数组成员数 (播放列表)' 读取歌曲数
s = 到整数 (读配置项 (取运行目录 () + “\” + “播放进度.txt”, “播放进度”, “进度”, ))
.如果真 (s ≠ 0)
按钮_暂停继续播放.标题 = “继续播放”
.如果真结束
.计次循环首 (歌曲数, i)' 添加播放列表到组合框1
组合框_音乐列表.加入项目 (播放列表 + #换行符, )
.计次循环尾 ()
.子程序 _按钮_选择文件_被单击
删除文件 (取运行目录 () + “\” + “播放列表.txt”)
播放列表 = 多文件对话框 (“请选择”, “音乐文件.mp3|*.mp3”, , 取运行目录 (), , )' 载入播放列表
歌曲数 = 取数组成员数 (播放列表)' 读取歌曲数
.计次循环首 (歌曲数, i)
配置播放列表 = 配置播放列表 + 播放列表 + “,”
.计次循环尾 ()
写配置项 (取运行目录 () + “\” + “播放列表.txt”, “播放列表”, “列表”, 配置播放列表)' 写播放列表
.计次循环首 (歌曲数, i)' 添加播放列表到组合框1
组合框_音乐列表.加入项目 (播放列表 + #换行符, )
.计次循环尾 ()
.子程序 _标签1_反馈事件, 整数型
.参数 参数一, 整数型
.参数 参数二, 整数型
.如果真 (参数一 = 100)
_按钮_下一首_被单击 ()' 播放完自动下一首
.如果真结束
s = 参数一
调试输出 (s)
标签1.标题 = “正在播放:” + 播放列表 + “ ” + “播放进度” + 到文本 (s) + “%”
.子程序 播放
同步播放MP3 (播放列表 , s, 标签1, )' 播放子程序
调试输出 (“当前歌曲数”)
调试输出 (i)
调试输出 (“当前播放进度”)
调试输出 (s)
.子程序 _按钮_播放_被单击
.如果真 (文件是否存在 (取运行目录 () + “\” + “播放进度.txt”))
i = 到整数 (读配置项 (取运行目录 () + “\” + “播放进度.txt”, “播放进度”, “曲目”, ))
.如果真结束
.如果真 (歌曲数 = 0)
_按钮_选择文件_被单击 ()
.如果真结束
s = 到整数 (读配置项 (取运行目录 () + “\” + “播放进度.txt”, “播放进度”, “进度”, ))
.如果真 (i > 歌曲数)
i = 1
.如果真结束
播放 ()
.子程序 _按钮_暂停_被单击
暂停播放MP3 ()
.子程序 _按钮_继续播放_被单击
继续播放MP3 ()
.子程序 _按钮_上一首_被单击
i = i - 1
s = 0
.如果真 (i < 1)
i = 歌曲数
.如果真结束
播放 ()
.子程序 _按钮_下一首_被单击
i = i + 1
s = 0
.如果真 (i > 歌曲数)
i = 1
.如果真结束
播放 ()
.子程序 __启动窗口_可否被关闭, 逻辑型
.如果 (信息框 (“是否关闭当前窗口”, 1 + 32, “是否关闭当前窗口”, ) = 0)' 关闭窗口前确认
.如果真 (i ≠ 0)
写配置项 (取运行目录 () + “\” + “播放进度.txt”, “播放进度”, “曲目”, 到文本 (i))' 写播放进度
写配置项 (取运行目录 () + “\” + “播放进度.txt”, “播放进度”, “进度”, 到文本 (s))' 写播放进度
.如果真结束
返回 (真)
.否则
返回 (假)
.如果结束
.子程序 _组合框_音乐列表_将弹出列表
.如果真 (歌曲数 = 0)' 弹出列表时运行选择文件
_按钮_选择文件_被单击 ()
.如果真结束
.子程序 _按钮_调试_被单击
信息框 (“1”, 0, “1”, )
.子程序 _组合框_音乐列表_列表项被选择
.局部变量 f, 整数型
f = 组合框_音乐列表.现行选中项
i = f + 1
s = 0
播放 ()
.子程序 _按钮_暂停继续播放_被单击
mp3状态 = 取MP3播放状态 ()
.判断开始 (mp3状态 = 0)
.如果真 (文件是否存在 (取运行目录 () + “\” + “播放进度.txt”))
i = 到整数 (读配置项 (取运行目录 () + “\” + “播放进度.txt”, “播放进度”, “曲目”, ))
.如果真结束
.如果真 (歌曲数 = 0)
_按钮_选择文件_被单击 ()
.如果真结束
s = 到整数 (读配置项 (取运行目录 () + “\” + “播放进度.txt”, “播放进度”, “进度”, ))
s = s - 1
.如果真 (i > 歌曲数)
i = 1
.如果真结束
按钮_暂停继续播放.标题 = “暂停播放”
播放 ()
.判断 (mp3状态 = -1)
继续播放MP3 ()
按钮_暂停继续播放.标题 = “暂停播放”
播放 ()
.判断 (mp3状态 = 1)
暂停播放MP3 ()
按钮_暂停继续播放.标题 = “继续播放”
.默认
.判断结束
沙发~~~~~~~~ 另起一个线程来操作UI 看不懂,给你点个赞 liklik 发表于 2022-8-10 13:53
另起一个线程来操作UI
{:1_893:}谢谢大佬,先记下了,还没学到那块呢。。。。。
页:
[1]