1、.版本 2.支持库 iext5.支持库 iext.支持库 EThread.支持库 iext6.婧旱恐笆支持库 OPenGL.程序集变量 鼠标左键被按下, 逻辑型.程序集懈吡赜痖变量 鼠标横向位置, 整数型.程序集变量 鼠标纵向位置, 整数型.程序集变量 当前状态, 整数型.程序集变量 显示文本, 文本型.程序集变量 播放器, 乖乖播放器.程序集变量 现在位置, 整数型, , , 多功能条_滑块条现行位置.程序集变量 打开文件对话框, 高级对话框.程序集变量 播放列表序号, 整数型.程序集变量 正在播放ID, 整数型.程序集变量 状态判断, 整数型.子程序 _关闭_被单击结束 ().子程序 __启动窗口_创建完毕播放器.创建 (液晶框.取窗口句柄 (), 0, 0, 液晶框.宽度, 液晶框.高度)' =================================================播放器的液晶显示记忆播放列表 ()气球提示框1.弹出提示框 (195, 120, “双击图标打开菜单”, -1, ).子程序 记忆播放列表.局部变量 播放列表文件, 文本型.局部变量 文件号, 整数型.局部变量 a, 文本型, , "0".局部变量 b, 整数型.局部变量 i, 整数型播放列表文件 = 取运行目录 () + “\8H.DB”播放列表框.全部删除 ()文件号 = 打开文件 (播放列表文件, , )i = 1.判断循环首 (是否在文件尾 (文件号, ) = 假) a = 分割文本 (读入一行 (文件号), “*.*”, ) b = 播放列表框.插入表项 (, , , , , ) 播放列表框.置标题 (b, 0, 到文本 (i)) 播放列表框.置标题 (b, 1, a [1]) 播放列表框.置标题 (b, 2, a [2]) i = i + 1.判断循环尾 ()关闭文件 (文件号)正在播放ID = -1.子程序 _实时时钟_周期事件启动线程 (&播放进度, , )' =================================================加速获取播放进度.子程序 播放进度播放时间文本画板.底图 = { }' 播放时间文本画板1.底图 = { }时间文本标签.底图 = { }播放时间文本画板.定位写出 (5, 0, 播放器.取播放时间文本 ())' 播放时间文本画板.复制 (, , , , 播放时间文本画板1, , , )时间文本标签.底图 = 播放时间文本画板.取图片 (0, -80)构建水平滑块条 (中图形按钮.取窗口句柄 (), 右图形按钮.取窗口句柄 (), 进度.取窗口句柄 (), 0, 播放器.取总时间 (), 播放器.取播放时间 (), 0)左图形按钮.宽度 = 中图形按钮.左边.子程序 _音量拉动_位置被改变播放器.音量 (音量拉动.位置).如果 (音量拉动.位置 = 0) ' 静音按钮.可视 = 假.否则 ' 静音按钮.可视 = 真.如果结束.子程序 _播放按钮_被单击状态判断 = 1播放器.播放暂停 ().子程序 打开实时时钟实时时钟.时钟周期 = 1000.子程序 关闭实时时钟实时时钟.时钟周期 = 0.子程序 打开缓冲时钟缓冲时钟.时钟周期 = 500.子程序 关闭缓冲时钟缓冲时钟.时钟周期 = 0.子程序 _缓冲时钟_周期事件.局部变量 缓冲数据, 文本型.局部变量 取播状态, 整数型.如果真 (缓冲时钟.时钟周期 = 500 且 当前状态 = 1) 取播状态 = 播放器.当前播放状态 () 缓冲数据 = 播放器.缓冲数据 () 状态文本画板.底图 = { } ' 状态文本画板1.底图 = { } ' 状态文本标签.底图 = { } 状态文本画板.标题 = “ 缓冲 ” + 缓冲数据 ' 状态文本画板.复制 (, , , , 状态文本画板1, , , ) ' 状态文本标签.底图 = 状态文本画板.取图片 (0, -80) .如果真 (取播状态 = 0) 关闭缓冲时钟 () .如果真结束.如果真结束.子程序 _状态时钟_周期事件.局部变量 播放状态, 整数型.局部变量 播放文本, 文本型播放状态 = 播放器.当前播放状态 ().判断开始 (播放状态 = 0 且 当前状态 ≠ 0) .如果 (状态判断 = 0) .否则 _下一首按钮_被单击 () .如果结束 当前状态 = 0 显示文本 = “” 时间文本标签.标题 = “” 关闭实时时钟 () 播放按钮.可视 = 真 暂停按钮.可视 = 假.判断 (播放状态 = 1 且 当前状态 ≠ 1) 当前状态 = 1 显示文本 = “ 正在缓冲数据,请稍后...” 关闭实时时钟 () 打开缓冲时钟 () 播放按钮.可视 = 真 暂停按钮.可视 = 假.判断 (播放状态 = 2 且 当前状态 ≠ 2) 当前状态 = 2 显示文本 = “” 关闭缓冲时钟 () 播放按钮.可视 = 真 暂停按钮.可视 = 假.判断 (播放状态 = 3 且 当前状态 ≠ 3) 当前状态 = 3 显示文本 = 播放器.取当前播放名称 () 关闭缓冲时钟 () 打开实时时钟 () 播放按钮.可视 = 假 暂停按钮.可视 = 真.判断 (播放状态 = 4 且 当前状态 ≠ 4) 当前状态 = 4 显示文本 = “ 正在加载数据,请稍后...” 关闭缓冲时钟 () 关闭实时时钟 () 播放按钮.可视 = 真 暂停按钮.可视 = 假.判断 (播放状态 = 5 且 当前状态 ≠ 5) 当前状态 = 5 显示文本 = “ 地址错误” 时间文本标签.标题 = “” 关闭缓冲时钟 () 关闭实时时钟 () 播放按钮.可视 = 真 暂停按钮.可视 = 假.默认.判断结束状态文本画板.底图 = { }' 状态文本画板1.底图 = { }' 状态文本标签.底图 = { }.判断开始 (播放状态 = 3) 状态文本画板.标题 = “ 正在播放:” + 显示文本 滚动字幕时钟.时钟周期 = 1000.默认 状态文本画板.标题 = 显示文本 滚动字幕时钟.时钟周期 = 0.判断结束' 状态文本画板.复制 (, , , , 状态文本画板1, , , )' 状态文本标签.底图 = 状态文本画板.取图片 (0, -80).子程序 _左图形按钮_鼠标左键被按下, 逻辑型.参数 横向位置, 整数型.参数 纵向位置, 整数型.参数 功能键状态, 整数型.局部变量 进度.如果 (横向位置 < 中图形按钮.宽度 ÷ 2) 中图形按钮.左边 = 左图形按钮.左边.否则 中图形按钮.左边 = 左图形按钮.左边 + 横向位置 - 中图形按钮.宽度 ÷ 2.如果结束左图形按钮.宽度 = 横向位置 - 中图形按钮.宽度 ÷ 2进度 = 横向位置 ÷ 右图形按钮.宽度 × 播放器.取总时间 ()播放器.快进 (进度).子程序 _右图形按钮_鼠标左键被按下, 逻辑型.参数 横向位置, 整数型.参数 纵向位置, 整数型.参数 功能键状态, 整数型.局部变量 进度.如果 (右图形按钮.宽度 - 横向位置 < 中图形按钮.宽度 ÷ 2) 中图形按钮.左边 = 右图形按钮.左边 + 右图形按钮.宽度 - 中图形按钮.宽度.否则 中图形按钮.左边 = 横向位置 + 右图形按钮.左边 - 中图形按钮.宽度 ÷ 2.如果结束左图形按钮.宽度 = 横向位置 - 中图形按钮.宽度 ÷ 2进度 = 横向位置 ÷ 右图形按钮.宽度 × 播放器.取总时间 ()播放器.快进 (进度).子程序 _中图形按钮_鼠标左键被放开, 逻辑型.参数 横向位置, 整数型.参数 纵向位置, 整数型.参数 功能键状态, 整数型.如果真 (到数值 (进度.内容) - 2 > 播放器.取播放时间 ()) 播放器.快进 (到数值 (进度.内容)).如果真结束.如果真 (到数值 (进度.内容) + 2 < 播放器.取播放时间 ()) 播放器.快进 (到数值 (进度.内容)).如果真结束.子程序 _中图形按钮_鼠标位置被移动, 逻辑型.参数 横向位置, 整数型.参数 纵向位置, 整数型.参数 功能键状态, 整数型.如果真 (鼠标左键被按下) .如果 (取鼠标水平位置 () ≤ _启动窗口.左边 + 左图形按钮.左边 + 鼠标横向位置) 中图形按钮.左边 = 左图形按钮.左边 .否则 .如果 (取鼠标水平位置 () ≥ _启动窗口.左边 + 右图形按钮.左边 + 右图形按钮.宽度 - (中图形按钮.宽度 - 鼠标横向位置)) 中图形按钮.左边 = 右图形按钮.左边 + 右图形按钮.宽度 - 中图形按钮.宽度 .否则 中图形按钮.左边 = 取鼠标水平位置 () - _启动窗口.左边 - 左图形按钮.左边 + 中图形按钮.宽度 ÷ 2 - 鼠标横向位置 .如果结束 .如果结束 左图形按钮.宽度 = 中图形按钮.左边.如果真结束.子程序 _暂停按钮_被单击播放器.播放暂停 ().子程序 _静音按钮_被单击播放器.静音 ()音量拉动.位置 = 0静音按钮.可视 = 真.子程序 _停止播放按钮_被单击.如果真 (播放器.取地址 () ≠ “”) 播放器.停止 () 状态判断 = 0.如果真结束.子程序 _最小化_被单击位置 = 2.子程序 _打开本地文件_被选择.局部变量 序号, 短整数型.局部变量 取歌曲名称, 文本型.局部变量 取歌曲时间, 文本型.局部变量 临时文本, 文本型打开文件对话框.初始化 (0, “打开多媒体文件”, “媒体文件|*.wav;*.asx;*.wma;*.wmv;*.asx;*.asf;*.mp3;*.mp4;*.flv;*.f4v;*.flvx;*.avi;*.mpg;*.mpeg;*.rm;*.rmvb;*.mp2;*.mp5;*.vcd;*.dvd;*.vod;*.dat|所有文件|*.*”, , , , , )打开文件对话框.打开 ().如果 (打开文件对话框.文件名 () = “”) 返回 ().否则.如果结束' 上面代码是打开本地文件对话框,并且过滤文件。临时文本 = 到文本 (读入文件 (取运行目录 () + “\8H.DB”)).如果 (寻找文本 (临时文本, 打开文件对话框.文件名 (), , 假) > -1) 播放器.地址 (打开文件对话框.文件名 ()).否则 播放器.地址 (打开文件对话框.文件名 ()) 取歌曲名称 = 到文本 (取文本左边 (取文本右边 (打开文件对话框.文件名 (), 取文本长度 (打开文件对话框.文件名 ()) - 倒找文本 (打开文件对话框.文件名 (), “\”, , 假)), 倒找文本 (取文本右边 (打开文件对话框.文件名 (), 取文本长度 (打开文件对话框.文件名 ()) - 倒找文本 (打开文件对话框.文件名 (), “\”, , 假)), “.”, , 假) - 1)) 序号 = 播放列表框.取表项数 () ' 歌曲列表数目 播放列表框.插入表项 (, , , , , ) 播放列表框.置标题 (序号, 0, 到文本 (播放列表框.取表项数 ())) ' 歌曲序号 播放列表框.置标题 (序号, 1, 取歌曲名称) ' 歌曲名称 播放列表框.置标题 (序号, 2, 打开文件对话框.文件名 ()) ' 歌曲地址 写到文件 (取运行目录 () + “\8H.DB”, 读入文件 (取运行目录 () + “\8H.DB”) + 到字节集 (取歌曲名称 + “*.*” + 打开文件对话框.文件名 () + #换行符)).如果结束.子程序 _打开网络文件_被选择载入 (打开网络文件窗口, , 真).子程序 _播放列表按钮_被单击.如果 (液晶框.宽度 = 953) 播放系统外框.宽度 = 250 液晶框.宽度 = 746 播放器.移动 (0, 0, 液晶框.宽度, 液晶框.高度).否则 播放系统外框.宽度 = 0 液晶框.宽度 = 953 播放器.移动 (0, 0, 液晶框.宽度, 液晶框.高度).如果结束.子程序 _清空列表框_被单击.如果 (信息 (“提示”, 3, #换行符 + #换行符 + #换行符 + #换行符 + “你确定要清空播放记录吗?清空后将无法恢复。”, 5) = #确认钮) 播放列表框.全部删除 () 写到文件 (取运行目录 () + “\8H.DB”, 到字节集 (“”)).否则.如果结束.子程序 _滚动字幕时钟_周期事件.判断开始 (是否为双字节字符 (显示文本, 0) = 真) ' 检查标题首字是否为汉字,否则可能会出现乱码 显示文本 = 取文本右边 (显示文本, 取文本长度 (显示文本) - 2) + 取文本左边 (显示文本, 2).默认 显示文本 = 取文本右边 (显示文本, 取文本长度 (显示文本) - 1) + 取文本左边 (显示文本, 1).判断结束.子程序 双击播放列表播放器.地址 (播放列表框.取标题 (播放列表框.现行选中项, 2)).子程序 _删除_被选择.局部变量 载入播放列表, 文本型.局部变量 载入选中项, 文本型.局部变量 输出变更, 文本型载入播放列表 = 到文本 (读入文件 (取运行目录 () + “\8H.DB”))载入选中项 = 播放列表框.取标题 (播放列表框.现行选中项, 1) + “*.*” + 播放列表框.取标题 (播放列表框.现行选中项, 2) + #换行符输出变更 = 子文本替换 (载入播放列表, 载入选中项, “”, , , 真)写到文件 (取运行目录 () + “\8H.DB”, 到字节集 (输出变更))播放列表框.删除表项 (播放列表框.现行选中项).子程序 _播放列表框_被双击, 逻辑型.参数 横向位置, 整数型.参数 纵向位置, 整数型.参数 功能键状态, 整数型播放器.地址 (播放列表框.取标题 (播放列表框.现行选中项, 2))正在播放ID = 播放列表框.现行选中项状态判断 = 1.子程序 _播放列表框_右键单击表项弹出菜单 (列表菜单, , ).子程序 _下一首按钮_被单击.如果真 (正在播放ID = -1) 返回 ().如果真结束.如果真 (正在播放ID = 播放列表框.取表项数 () - 1) 返回 ().如果真结束正在播放ID = 正在播放ID + 1.如果 (寻找文本 (播放列表框.取标题 (正在播放ID, 2), “://”, , 假) > -1) 启动线程 (&双击播放列表, , ).否则 播放器.地址 (播放列表框.取标题 (正在播放ID, 2)).如果结束.子程序 _logo_被双击, 逻辑型.参数 横向位置, 整数型.参数 纵向位置, 整数型.参数 功能键状态, 整数型弹出菜单 (播放系统菜单, _启动窗口.左边 + logo.左边 + 4, _启动窗口.顶边 + logo.顶边 + 60).子程序 _搜索清除按钮_被单击编辑框2.内容 = “”.子程序 _关于_被选择载入 (窗口1, , 真).子程序 _更新_被选择载入 (窗口2, , 真).子程序 _全部删除_被选择载入 (窗口3, , 真).子程序 _窗口最小化_被选择_启动窗口.位置 = 2.子程序 _退出_被选择销毁 ().子程序 _透明标签9_被双击, 逻辑型.参数 横向位置, 整数型.参数 纵向位置, 整数型.参数 功能键状态, 整数型
2、.版本 2.支持库 internet.程序集 读取数据库信息功能.程序集变量 文件全部内容, 文本型, , "0".程序集变量 网页数据, 文本型.程序集变量 分割内容, 文本型.程序集变量 替换内容, 文本型.程序集变量 最终内容, 文本型.子程序 读取全部信息网页数据 = 到文本 (HTTP读文件 (#网站地址 + “index.asp”))分割内容 = 取文本中间内容 (删全部空 (网页数据), “-|-”, “-|-”)最终内容 = 子文本替换 (分割内容, “@”, “*.*”, , , 真)最终内容 = 取文本右边 (最终内容, 取文本长度 (最终内容) - 寻找文本 (最终内容, #换行符, , 假) - 1)最终内容 = 子文本替换 (最终内容, “|”, “”, , , 真)文件全部内容 = 分割文本 (到文本 (最终内容), #换行符, )总页数 = 取数组成员数 (文件全部内容) ÷ 40.如果真 (取数组成员数 (文件全部内容) % 40 ≠ 0) 总页数 = 总页数 + 1.如果真结束处理资源数据 (1).子程序 处理资源数据.参数 页数.局部变量 开始位置, 整数型.局部变量 i, 整数型.局部变量 a, 文本型, , "0".局部变量 b, 整数型开始位置 = (页数 - 1) × 40当前位置 = 页数当前位置2 = 当前位置
3、.版本 2.常量 类型_文本, "0", , 隐藏播放列表滚动条.常量 菜单函数_按位置, "1024", , 隐藏播放列表滚动条.常量 类型_分隔线, "2048", , 隐藏播放列表滚动条.常量 窗口特征_窗口程序, "-4", , 隐藏播放列表滚动条.常量 网站地址, "<文本长度: 20>"
4、.版本 2.DLL命令 CallWindowProcA, 整数型, , "CallWindowProcA", , 隐藏播放列表框滚动条 .参数 程序指针, 子程序指针 .参数 窗口句柄, 整数型 .参数 消息, 整数型 .参数 参数1, 整数型 .参数 参数2, 整数型.DLL命令 SetWindowLongA, 子程序指针, , "SetWindowLongA" .参数 窗口句柄, 整数型 .参数 要置的特征, 整数型 .参数 新特征, 子程序指针, , 仅易语言3.0支持
5、.版本 2.支持库 EThread.支持库 iext.程序集 窗口程序集2.子程序 _确定按钮娄多骋能_被单击.如果 (编辑框1.内容 = “”) 返回 () 销毁 ().否则 .如果 (寻找文眺螗熨膣本 (编辑框1.内容, “://”, , 假) > -1) 启动线程 (&查找表项, , ) .否则 信息框 (“媒体URL地址不正确!”, 0, “错误提示”) 返回 () .如果结束.如果结束.子程序 查找表项.局部变量 临时文本, 文本型.局部变量 索引, 整数型.局部变量 序号, 短整数型.局部变量 取歌曲名称, 文本型临时文本 = 到文本 (读入文件 (取运行目录 () + “\8H.DB”)).如果 (寻找文本 (临时文本, 编辑框1.内容, , 假) > -1) _启动窗口.播放器.地址 (编辑框1.内容).否则 _启动窗口.播放器.地址 (编辑框1.内容) 取歌曲名称 = 到文本 (取文本左边 (取文本右边 (_启动窗口.播放器.取播放文件名 (), 取文本长度 (_启动窗口.播放器.取播放文件名 ()) - 倒找文本 (_启动窗口.播放器.取播放文件名 (), “\”, , 假)), 倒找文本 (取文本右边 (_启动窗口.播放器.取播放文件名 (), 取文本长度 (_启动窗口.播放器.取播放文件名 ()) - 倒找文本 (_启动窗口.播放器.取播放文件名 (), “\”, , 假)), “.”, , 假) - 1)) 序号 = _启动窗口.播放列表框.取表项数 () ' 歌曲列表数目 _启动窗口.播放列表框.插入表项 (, , , , , ) _启动窗口.播放列表框.置标题 (序号, 0, 到文本 (_启动窗口.播放列表框.取表项数 ())) ' 歌曲序号 _启动窗口.播放列表框.置标题 (序号, 1, 取歌曲名称) ' 歌曲名称 _启动窗口.播放列表框.置标题 (序号, 2, _启动窗口.播放器.取地址 ()) ' 歌曲地址 写到文件 (取运行目录 () + “\8H.DB”, 读入文件 (取运行目录 () + “\8H.DB”) + 到字节集 (取歌曲名称 + “*.*” + 编辑框1.内容 + #换行符)).如果结束销毁 ().子程序 _取消按钮_被单击销毁 ()