|

分享源码
界面截图: |
|
是否带模块: |
- |
备注说明: |
- |
本帖最后由 玲心韩雪 于 2012-12-27 12:32 编辑
![]()
- .版本 2
- .常量 标题, "“MediaPlay”"
- .常量 节1, "“ 视频媒体”"
- .常量 节2, "“ 音乐媒体”"
- .常量 节3, "“控制区域”"
- .常量 节4, "“本窗口播放(&Y)”"
- .常量 IDM_MYO, "0"
- .常量 节5, "“删除项目失败”"
- .常量 节6, "“删除项目成功”"
- .常量 节7, "“清空列表失败”"
- .常量 节8, "“清空列表成功”"
- .常量 节9, "<文本长度: 8>"
- .常量 节10, "“请选择您有媒体的文件夹”"
- .常量 节11, "“目录无效”"
- .常量 节12, "“读取信息失败”"
- .常量 节13, "“关闭媒体成功”"
- .常量 节14, "“关闭媒体失败”"
- .常量 节15, "“保存列表成功”"
- .常量 节16, "“保存列表失败”"
复制代码- .版本 2
- .DLL命令 PathIsDirectoryEmptyA, 整数型, "shlwapi.dll"
- .参数 pszPath, 文本型
复制代码
MediaPlay.zip
(8.39 KB, 下载次数: 436)
http://www.3600gz.cn/le3600_down ... 5Nzh8MTM2MjM3Mjk%3D
修订版- .版本 2
- .支持库 eMMedia
- .支持库 shell
- .支持库 iconv
- .支持库 eAPI
- .支持库 internet
- .程序集 Model
- .程序集变量 MediaPlay, 媒体播放
- .程序集变量 系统音量, 系统音量
- .程序集变量 ListBox, 列表框
- .程序集变量 image, 图片框
- .程序集变量 _MainForm, 窗口
- .程序集变量 Register, 文本型, , "0"
- .程序集变量 Button, 按钮, , "0"
- .程序集变量 ChikeBox, 选择框
- .程序集变量 OpenDIG, 通用对话框
- .程序集变量 音波, 滑块条
- .程序集变量 信息, 媒体播放
- .程序集变量 过滤器, 文本型, , "0"
- .程序集变量 item, 文本型
- .程序集变量 Timer, 时钟
- .程序集变量 Text, 文本型
- .子程序 __启动窗口_创建完毕
- 初始化OCX ()
- .子程序 初始化OCX, , 公开, 初始化OCX控件样式信息
- .局部变量 index, 整数型
- .局部变量 Temp, 按钮
- .局部变量 Rtr, 文本型, , "0"
- ListBox = 列表框1
- 系统音量 = 系统音量1
- SAVE.可视 = 假
- MediaPlay = 媒体播放1
- 分组框1.标题 = #节3
- ListBox.边框 = 5
- image = 图片框1
- image.边框 = 5
- Timer = 时钟1
- image.背景颜色 = 0
- _MainForm = _启动窗口
- _MainForm.标题 = #标题
- _MainForm.最小化按钮 = 真
- ChikeBox = 选择框1
- ChikeBox.标题居左 = 真
- ChikeBox.横向对齐方式 = 2
- ChikeBox.文本颜色 = #品红
- ChikeBox.标题 = #节4
- OpenDIG = 通用对话框1
- 系统音量.打开 (4104)
- 信息 = 媒体播放2
- OpenDIG.过滤器 = “mp3|*.mp3|mp4|*.mp4|mp2|*.mp2|avi|*.avi|wmv|*.wmv|wav|*.wav|Rm|*.rm;*.rmvb|mpge|*.mpg;*.mpge|mdi|*.mdi|bmp|*.bmp|jpg|*.jpg;jpge|png|*.png|Gif|*.gif|Ico|*.ico|m4v|*.m4v|aac|*.aac|”
- OpenDIG.文件名 = “(请选择您要选择的文件名)”
- WOpenDIG.过滤器 = “Rdb|*.Rdb”
- WOpenDIG.文件名 = “(请选择您的Rdb列表文件)”
- WOpenDIG.类型 = 1
- AI.可视 = 假
- 音波 = 滑块条1
- 音波.刻度类型 = 0
- 音波.最小位置 = 0
- 音波.最大位置 = 100
- 音波.位置 = 音波.最大位置
- Register = { “打开(&O)”, “播放(&P)”, “暂停(&L)”, “停止(&S)” }
- .变量循环首 (1, 取数组下标 (Register, 1), 1, index)
- 复制窗口组件 (按钮1, Temp)
- 加入成员 (Button, Temp)
- Button [index].可视 = 真
- .如果真 (index > 1)
- Button [index].左边 = Button [index - 1].左边 + 75
- .如果真结束
- Button [index].标题 = Register [index]
- Button [index].标记 = 到文本 (index)
- .变量循环尾 ()
- 过滤器 = 分割文本 (OpenDIG.过滤器, “|”, )
- index = index × 0
- .变量循环首 (1, 取数组成员数 (过滤器), 1, index)
- .如果真 (寻找文本 (过滤器 [index], “*”, , 假) ≠ -1)
- 加入成员 (Rtr, 子文本替换 (过滤器 [index], “*”, “”, , 1, 假))
- .如果真结束
- .变量循环尾 ()
- 重定义数组 (过滤器, 假, 0)
- 过滤器 = Rtr
- .子程序 _选择框1_被单击
- .如果 (ChikeBox.选中 = 真)
- MediaPlay.置句柄 (image.取窗口句柄 ())
- .否则
- MediaPlay.置句柄 (#IDM_MYO)
- .如果结束
- .子程序 _按钮1_被单击
- 处理按钮事件 ()
- .子程序 处理按钮事件, , 公开
- .局部变量 object, 按钮
- object = 取事件组件 ()
- .如果真 (Register [到数值 (object.标记)] = Register [1])
- Open ()
- .如果真结束
- .如果真 (Register [到数值 (object.标记)] = Register [2])
- .如果真 (MediaPlay.播放 (-1, ) ≠ 真)
- 信息框 (“播放失败”, 64, )
- .如果真结束
- 返回 ()
- .如果真结束
- .如果真 (Register [到数值 (object.标记)] = Register [3])
- .如果真 (MediaPlay.暂停 () ≠ 真)
- 信息框 (“暂停失败”, 64, )
- .如果真结束
- 返回 ()
- .如果真结束
- .如果真 (Register [到数值 (object.标记)] = Register [4])
- .如果真 (MediaPlay.停止 () = 假)
- 信息框 (“停止失败”, 64, )
- .如果真结束
- 返回 ()
- .如果真结束
- .子程序 Open
- .如果真 (OpenDIG.打开 () = 真)
- Playsunad (OpenDIG.文件名, 0)
- .如果真结束
- 返回 ()
- .子程序 Playsunad
- .参数 DIG, 文本型
- .参数 标志, 整数型
- .局部变量 文件名, 文本型
- .局部变量 Temp, 文本型
- .如果真 (文件是否存在 (DIG) ≠ 真)
- 信息框 (“文件不存在” + #换行符 + “打开失败”, 64, )
- 返回 ()
- .如果真结束
- 文件名 = DIG
- item = 文件名
- .如果真 (标志 = 0)
- ListBox.加入项目 (文件名, )
- .如果真结束
- .如果真 (MediaPlay.打开 (文件名) ≠ 真)
- 信息框 (“文件打开失败”, 64, )
- 返回 ()
- .如果真结束
- Temp = 取文本右边 (文件名, 取文本长度 (文件名) - 倒找文本 (文件名, “\”, , 假))
- Temp = 取文本左边 (Temp, 寻找文本 (Temp, “.”, , 假) - 1)
- .如果 (MediaPlay.是否视频 () = 真)
- Temp = Temp + #节1
- .否则
- Temp = Temp + #节2
- .如果结束
- _MainForm.标题 = Temp
- Text = Temp
- Timer.时钟周期 = 1000
- .如果真 (MediaPlay.播放 (-1, ) ≠ 真)
- 信息框 (“播放失败”, 64, )
- .如果真结束
- .子程序 _列表框1_双击选择
- 处理ListBox事件 ()
- .子程序 处理ListBox事件
- .局部变量 object, 列表框
- .局部变量 tem, 文本型
- object = 取事件组件 ()
- tem = object.取项目文本 (object.现行选中项)
- Playsunad (tem, 1)
- .子程序 _滑块条1_位置被改变
- .局部变量 量, 整数型, , "1,2"
- 量 [1] [1] = 系统音量.取最大音量 () ÷ 音波.最大位置
- 量 [1] [1] = 量 [1] [1] × 音波.位置
- 量 [1] [2] = 量 [1] [1]
- 系统音量.置音量 (量 [1] [1], 量 [1] [2])
- .子程序 _图片框1_鼠标右键被按下, 逻辑型
- .参数 横向位置, 整数型
- .参数 纵向位置, 整数型
- .参数 功能键状态, 整数型
- 弹出菜单 (AI, , )
- .子程序 _列表框1_鼠标右键被按下, 逻辑型
- .参数 横向位置, 整数型
- .参数 纵向位置, 整数型
- .参数 功能键状态, 整数型
- 弹出菜单 (AI, , )
- .子程序 _删除_被选择
- .如果 (ListBox.取项目数 () > 0)
- .如果 (ListBox.删除项目 (ListBox.现行选中项) ≠ 真)
- 信息框 (#节5, 64, )
- .否则
- 信息框 (#节6, 64, )
- .如果结束
- .否则
- 信息框 (#节9, 64, )
- .如果结束
- .子程序 _删除全部_被选择
- .如果 (ListBox.取项目数 () > 0)
- ListBox.清空 ()
- .如果 (ListBox.取项目数 () > 0)
- 信息框 (#节7, 64, )
- .否则
- 信息框 (#节8, 64, )
- .如果结束
- .否则
- 信息框 (#节9, 64, )
- .如果结束
- .子程序 _添加_被选择
- Open ()
- .子程序 _添加目录_被选择
- .局部变量 目录, 文本型
- .局部变量 文件, 文本型
- .局部变量 索引, 整数型, , "2"
- 目录 = 浏览文件夹 (#节10, 假)
- .如果真 (PathIsDirectoryEmptyA (目录) ≠ 0)
- 信息框 (#节11, 64, )
- 返回 ()
- .如果真结束
- .如果真 (取文本右边 (目录, 1) ≠ “\”)
- 目录 = 目录 + “\”
- .如果真结束
- 文件 = 寻找文件 (目录 + “*”, )
- .判断循环首 (文件 ≠ “”)
- .如果真 (文件是否存在 (目录 + 文件) = 真)
- .计次循环首 (取数组下标 (过滤器, 1), 索引 [1])
- .如果真 (寻找文本 (文件, 过滤器 [索引 [1]], , 假) ≠ -1)
- 索引 [2] = 索引 [2] + 1
- .如果真结束
- .计次循环尾 ()
- .如果真 (索引 [2] > 0)
- ListBox.加入项目 (目录 + 文件, )
- .如果真结束
- .如果真结束
- 文件 = 寻找文件 (, )
- .判断循环尾 ()
- .子程序 _媒体信息_被选择
- .局部变量 项目信息, 文本型
- .局部变量 ccc, 文本型, , "0"
- .如果真 (信息.打开 (item) = 假)
- 信息框 (#节12, 64, )
- 返回 ()
- .如果真结束
- ccc = { “未知状态”, “播放状态”, “停止状态”, “暂停状态” }
- 项目信息 = “MCI:” + 信息.取别名 ()
- 项目信息 = 项目信息 + #换行符 + “媒体时长:” + 到文本 (信息.取总时间 () \ 60) + “:” + 到文本 (信息.取总时间 () % 60)
- 项目信息 = 项目信息 + #换行符 + “媒体大小:” + 到文本 (信息.取长度 () ÷ 1024) + “Kb[千字节]”
- 项目信息 = 项目信息 + #换行符 + “媒体比率:” + 到文本 (信息.取比率 ())
- 项目信息 = 项目信息 + #换行符 + “媒体类型:”
- .如果 (信息.是否视频 () = 真)
- 项目信息 = 项目信息 + #节1
- .否则
- 项目信息 = 项目信息 + #节2
- .如果结束
- 信息.关闭 ()
- 项目信息 = 项目信息 + #换行符 + “播放位置:” + 到文本 (MediaPlay.取位置 () \ 60) + “:” + 到文本 (MediaPlay.取位置 () % 60)
- 项目信息 = 项目信息 + #换行符 + “播放状态:” + ccc [MediaPlay.取状态 ()]
- 信息框 (项目信息, 64, )
- .子程序 _关闭媒体_被选择
- .如果 (MediaPlay.关闭 () = 真 或 信息.关闭 () = 真)
- 信息框 (#节13, 64, )
- .否则
- 信息框 (#节14, 64, )
- .如果结束
- .子程序 _时钟1_周期事件
- 处理Timer事件 ()
- .子程序 处理Timer事件
- .局部变量 a, 整数型, 静态
- .局部变量 b, 整数型, 静态
- .如果真 (取文本长度 (Text) > 72)
- a = a + 1
- b = 取文本长度 (Text) - a
- .如果 (b > 0)
- _MainForm.标题 = 取文本右边 (Text, 取文本长度 (Text) - a)
- .否则
- a = 0
- .如果结束
- .如果真结束
- .子程序 _载入_被选择
- .局部变量 数据, 字节集
- .局部变量 文本, 文本型, , "0"
- .局部变量 index, 整数型
- .局部变量 temp, 文本型
- WOpenDIG.类型 = 0
- .如果真 (WOpenDIG.打开 () = 真)
- .如果真 (文件是否存在 (WOpenDIG.文件名) ≠ 真)
- 信息框 (“导入错误”, 64, )
- 返回 ()
- .如果真结束
- 数据 = 读入文件 (WOpenDIG.文件名)
- 数据 = 编码转换 (数据, #编码_UTF_8, #编码_GBK, )
- 文本 = 分割文本 (到文本 (数据), #换行符, )
- .计次循环首 (取数组成员数 (文本), index)
- .如果真 (删全部空 (文本 [index]) ≠ “”)
- .如果 (寻找文本 (文本 [index], “<pos:”, , 假) = -1 且 寻找文本 (文本 [index], “/>”, , 假) = -1)
- ListBox.加入项目 (文本 [index], )
- .否则
- temp = 取文本中间 (文本 [index], 寻找文本 (文本 [index], “<pos:”, , 假), 寻找文本 (文本 [index], “/>”, , 假) - 寻找文本 (文本 [index], “<pos:”, , 假))
- temp = 取文本右边 (temp, 取文本长度 (temp) - 取文本长度 (“<pos:”))
- 音波.位置 = 到整数 (temp)
- _滑块条1_位置被改变 ()
- .如果结束
- .如果真结束
- .计次循环尾 ()
- .如果真结束
- .子程序 _保存_被选择
- 保存文档 (0)
- .子程序 保存文档
- .参数 标志, 整数型
- .局部变量 文本, 文本型
- .局部变量 index, 整数型
- .局部变量 流, 字节集
- .如果真 (ListBox.取项目数 () > 0)
- WOpenDIG.类型 = 1
- .计次循环首 (ListBox.取项目数 (), index)
- .如果真 (index = 1)
- 文本 = ListBox.取项目文本 (index - 1) + #换行符
- .如果真结束
- 文本 = 文本 + ListBox.取项目文本 (index - 1) + #换行符
- .计次循环尾 ()
- 文本 = 文本 + “<pos:” + 到文本 (音波.位置) + “/>”
- 流 = 编码转换 (到字节集 (文本), #编码_GBK, #编码_UTF_8, )
- .如果真 (标志 = 0)
- WOpenDIG.打开 ()
- .如果真结束
- .如果 (写到文件 (WOpenDIG.文件名 + “.Rdb”, 流) = 真)
- 信息框 (#节15, 64, )
- .否则
- 信息框 (#节16, 64, )
- .如果结束
- ' favicon
- .如果真结束
- .子程序 __启动窗口_首次激活
- .如果真 (是否与互联网连接 () = 真)
- _MainForm.图标 = HTTP读文件 (“http://www.youku.com/favicon.ico”)
- .如果真结束
- .子程序 _列表框1_按下某键, 逻辑型
- .参数 键代码, 整数型
- .参数 功能键状态, 整数型
- .如果真 (键代码 = #回车键)
- .如果真 (ListBox.取项目数 () > 0)
- Playsunad (ListBox.取项目文本 (ListBox.现行选中项), 1)
- .如果真结束
- .如果真结束
- .子程序 _SAVE_被选择
- 保存文档 (1)
复制代码 |
|