找回密码
  注册[Register]
查看: 468|回复: 14

[易语言] 一个简单的易语言播放器分享 成品+源码

[复制链接]
发表于 2022-8-12 12:13 | 显示全部楼层 |阅读模式
禁止求评分、诱导评分、互刷评分、互刷悬赏值,违规者封号处理。
禁止发布推广、邀请码、邀请链接、二维码或者有利益相关的任何推广行为。
所有非原创软件请发布在【精品软件区】,发帖必须按照本版块版规格式发帖。

成品+源码:https://wwz.lanzout.com/iOxYN09em3yd
边学边写,弄了三四天,分享出来给大家参考以下吧。
另外程序有个BUG,反复点击播放6-10次左右有概率直接把程序玩死。有大佬能帮忙看看啥问题就更好了~
233805ut6ntlbnz8m8stjn.png

[HTML] 纯文本查看 复制代码
.版本 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, )  ' 播放子程序
可否展示进度 = 真
 
.子程序 _选择框_保存进度_被单击
 
 
 
.子程序 _单选框_列表循环_被单击
 
循环模式 = 单选框_列表循环.选中
调试输出 (循环模式)
 
 
.子程序 _单选框_单曲循环_被单击
 
循环模式 = 单选框_单曲循环.选中
调试输出 (循环模式)
 
 
.子程序 _单选框_随机播放_被单击
 
循环模式 = 单选框_列表循环.选中
调试输出 (循环模式)

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2022-8-12 12:13 | 显示全部楼层
谢谢大佬分享
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-8-12 12:25 | 显示全部楼层
谢谢@Thanks!
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-8-12 13:06 | 显示全部楼层
6666666666
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-8-12 13:29 | 显示全部楼层
感谢楼主分享
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-8-12 13:39 | 显示全部楼层
谢谢大牛
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-8-12 13:57 | 显示全部楼层
6666
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-8-12 14:02 | 显示全部楼层
多谢楼主分享
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-8-12 15:23 | 显示全部楼层

支持楼主,谢谢分享。
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-8-12 18:28 | 显示全部楼层

感谢楼主的分享
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

RSS订阅|手机版|小黑屋|大牛论坛 |我的广告

GMT+8, 2024-5-4 14:59 , Processed in 0.044625 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表