开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 5402|回复: 16
收起左侧

[易语言] mp3播放器 如何解决播放进度和歌曲时间同步

[复制链接]
结帖率:0% (0/1)
发表于 2012-1-31 20:04:00 | 显示全部楼层 |阅读模式   湖北省宜昌市
2精币
mp3播放器 如何解决播放进度和歌曲时间同步 并且滑动多功能条可以定位新的时间进度 歌词也同步滚动到那个新时间的歌曲


回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳
结帖率:42% (5/12)
发表于 2012-1-31 20:27:10 | 显示全部楼层   江苏省苏州市
帮楼主顶下 我去研究下
回复

使用道具 举报

结帖率:0% (0/1)
发表于 2012-1-31 20:47:56 | 显示全部楼层   河南省开封市
取得mp3的总播放时间
时钟周期为1秒 事件为 进度条值+1 过了mp3的总时间之后周期为0
回复

使用道具 举报

结帖率:0% (0/1)
发表于 2012-1-31 20:48:45 | 显示全部楼层   河南省开封市
或者按百分比加  这样更同步
回复

使用道具 举报

结帖率:0% (0/1)
 楼主| 发表于 2012-1-31 20:54:36 | 显示全部楼层   湖北省宜昌市
有详细代码吗
回复

使用道具 举报

结帖率:0% (0/1)
 楼主| 发表于 2012-1-31 20:57:05 | 显示全部楼层   湖北省宜昌市
3333.jpg 1.jpg
那连个都用过 一个同步MP3的和 那个伙计发的同步都用过 前者不行  后者可以实现 但很卡  断断续续的效果 不理想
回复

使用道具 举报

结帖率:0% (0/1)
 楼主| 发表于 2012-1-31 20:58:18 | 显示全部楼层   湖北省宜昌市
.版本 2
.支持库 eMMedia
.支持库 iext6
.支持库 iext5
.支持库 iext

.局部变量 局_总时间, 整数型
.局部变量 局_总长度, 整数型

.判断开始 (程_暂停播放 = 真)  ' ---------------==========继续播放==========--------------------------------------------
    程_暂停播放 = 假
    钟_标签标题滚动.时钟周期 = 400  ' 滚动显示标题
    时钟1.时钟周期 = 400
    程_待播放MP3文件名 = 读配置项 (取运行目录 () + “\viky” + “\配置文件.ini”, “正在播放歌曲”, “歌名”, )
    程_待播放MP3路径 = 读配置项 (取运行目录 () + “\viky” + “\配置文件.ini”, 程_待播放MP3文件名, “路径”, )
    媒体播放1.打开 (程_待播放MP3路径)
    媒体播放1.播放 (到数值 (读配置项 (取运行目录 () + “\viky” + “\配置文件.ini”, “播放进度”, “进度”, )), )  ' 继续播放原MP3
    局_总时间 = 媒体播放1.取总时间 ()
    局_总长度 = 媒体播放1.取长度 ()
    播放进度.最大位置 = 媒体播放1.取总时间 ()

    气球提示框1.弹出提示框 (889, 759, “<font color=black>” + “继续播放” + 标_歌曲名称.标题 + “</fonr>”, -1, )
    程_MP3时长 = 到文本 (转换为时间 (取整 (局_总长度 × 局_总长度 ÷ 局_总时间 ÷ 1000)))
    超_歌曲列表.置标题 (超_歌曲列表.现行选中项, 2, 程_MP3时长)  ' 显示MP3时长
    写配置项 (取运行目录 () + “\viky” + “\配置文件.ini”, 程_待播放MP3文件名, “MP3时长”, 程_MP3时长)

    程_正在播放MP3文件名 = 程_待播放MP3文件名
    写配置项 (取运行目录 () + “\viky” + “\配置文件.ini”, “正在播放歌曲”, “歌名”, 程_正在播放MP3文件名)  ' 记住正在播放歌曲
    画_歌曲.可视 = 真
    标_歌曲名称.标题 = “ 正在播放 ” + 程_正在播放MP3文件名
    标_歌曲时长.标题 = 程_MP3时长
    钟_标签标题滚动.时钟周期 = 400  ' 滚动显示标题
    时钟1.时钟周期 = 400
    _启动窗口.标题 = “ 正在播放 ” + 程_待播放MP3文件名
    钟_标题滚动.时钟周期 = 400  ' 滚动显示_启动窗口.标题
    时钟1.时钟周期 = 400
    钟_已播放时长.时钟周期 = 1000  ' 计算已播放时长
    钟_歌曲完毕.时钟周期 = 50  ' 计算歌曲是否已播放完毕
    气球提示框1.弹出提示框 (889, 759, “<font color=black>” + 标_歌曲名称.标题 + “</fonr>”, -1, )
    多_滚动条1.位置 = 超_歌曲列表.现行选中项

    .判断开始 (读配置项 (取运行目录 () + “\viky” + “\配置文件.ini”, “桌面歌词开启”, “状态”, ) = “假”)

    .默认
        程_歌词路径 = 取文本左边 (程_待播放MP3路径, 倒找文本 (程_待播放MP3路径, “.”, , 假)) + “lrc”
        .判断开始 (文件是否存在 (程_歌词路径) = 真)
            载入 (歌词窗口, , 假)
            选择框1.选中 = 真
            程_歌词处理.载入 (程_歌词路径)
            钟_更新歌词.时钟周期 = 50  ' 更新歌词位置
        .默认

        .判断结束

    .判断结束


    钟_进度条同步.时钟周期 = 50

    .判断开始 (是否已创建 (置顶窗口) = 真)
        置顶窗口.时钟2.时钟周期 = 50
    .默认

    .判断结束

    .判断开始 (文件是否存在 (程_待播放MP3路径) = 假)
        播放结束 ()
        信息框 (“所选择文件不存在,请检查文件路径!”, #确认钮 + #信息图标, “路径出错”)
        返回 ()
    .默认
        按_播放.可视 = 假
        按_暂停.可视 = 真
        画_频谱背景.可视 = 真
        标_已播放时长.可视 = 真
        标_播放中.可视 = 真
        标_暂停提示.可视 = 假
        标_停止.可视 = 假
    .判断结束

.判断 (超_歌曲列表.取表项数 () = 0 或 超_歌曲列表.现行选中项 = -1)
    返回 ()  ' 若没有歌曲列表或没有选择歌曲则无反应
.默认
    程_暂停播放 = 假  ' ---------------==========首次播放==========---------------------------------------------
    程_待播放MP3文件名 = 超_歌曲列表.取标题 (超_歌曲列表.现行选中项, 1)
    程_待播放MP3路径 = 读配置项 (取运行目录 () + “\viky” + “\配置文件.ini”, 程_待播放MP3文件名, “路径”, )
    媒体播放1.打开 (程_待播放MP3路径)
    媒体播放1.播放 (-1, )
    局_总时间 = 媒体播放1.取总时间 ()
    局_总长度 = 媒体播放1.取长度 ()
    播放进度.最大位置 = 媒体播放1.取总时间 ()
    时钟3.时钟周期 = 1000
    程_MP3时长 = 到文本 (转换为时间 (取整 (局_总长度 × 局_总长度 ÷ 局_总时间 ÷ 1000)))
    超_歌曲列表.置标题 (超_歌曲列表.现行选中项, 2, 程_MP3时长)  ' 显示MP3时长
    写配置项 (取运行目录 () + “\viky” + “\配置文件.ini”, 程_待播放MP3文件名, “MP3时长”, 程_MP3时长)

    程_正在播放项 = 超_歌曲列表.现行选中项
    程_正在播放MP3文件名 = 程_待播放MP3文件名
    写配置项 (取运行目录 () + “\viky” + “\配置文件.ini”, “正在播放歌曲”, “歌名”, 程_正在播放MP3文件名)  ' 记住正在播放歌曲

    画_歌曲.可视 = 真
    标_歌曲名称.标题 = “ 正在播放 ” + 程_正在播放MP3文件名
    标_歌曲时长.标题 = 程_MP3时长
    钟_标签标题滚动.时钟周期 = 400  ' 滚动显示标题
    时钟1.时钟周期 = 400
    _启动窗口.标题 = “ 正在播放 ” + 程_待播放MP3文件名
    钟_标题滚动.时钟周期 = 400  ' 滚动显示_启动窗口.标题
    时钟1.时钟周期 = 400
    播放进度.最大位置 = 媒体播放1.取总时间 ()
    时钟3.时钟周期 = 1000
    钟_已播放时长.时钟周期 = 1000  ' 计算已播放时长
    钟_歌曲完毕.时钟周期 = 50  ' 计算歌曲是否已播放完毕
    气球提示框1.弹出提示框 (889, 759, “<font color=black>” + 标_歌曲名称.标题 + “</fonr>”, -1, )
    多_滚动条1.位置 = 超_歌曲列表.现行选中项
    .判断开始 (读配置项 (取运行目录 () + “\viky” + “\配置文件.ini”, “桌面歌词开启”, “状态”, ) = “假”)

    .默认
        程_歌词路径 = 取文本左边 (程_待播放MP3路径, 倒找文本 (程_待播放MP3路径, “.”, , 假)) + “lrc”
        .判断开始 (文件是否存在 (程_歌词路径) = 真)
            载入 (歌词窗口, , 假)
            选择框1.选中 = 真
            程_歌词处理.载入 (程_歌词路径)
            钟_更新歌词.时钟周期 = 50  ' 更新歌词位置
        .默认

        .判断结束

    .判断结束



    钟_进度条同步.时钟周期 = 50

    .判断开始 (是否已创建 (置顶窗口) = 真)
        置顶窗口.时钟2.时钟周期 = 50
    .默认

    .判断结束

    .判断开始 (文件是否存在 (程_待播放MP3路径) = 假)
        播放结束 ()
        信息框 (“所选择文件不存在,请检查文件路径!”, #确认钮 + #信息图标, “路径出错”)
        气球提示框1.弹出提示框 (889, 759, “<font color=black>” + “请检查文件是否存在或路径是否正确!” + “</fonr>”, -1, )
        返回 ()
    .默认
        按_播放.可视 = 假
        按_暂停.可视 = 真
        画_频谱背景.可视 = 真
        标_已播放时长.可视 = 真
        标_播放中.可视 = 真
        标_暂停提示.可视 = 假
        标_停止.可视 = 假
    .判断结束


回复

使用道具 举报

结帖率:0% (0/1)
 楼主| 发表于 2012-1-31 20:59:08 | 显示全部楼层   湖北省宜昌市
上面是播放代码 列表是超_歌曲列表 多动能条是 播放进度
回复

使用道具 举报

结帖率:81% (17/21)
发表于 2012-2-4 11:06:58 | 显示全部楼层   北京市北京市
用标签的反馈事件可以做到同步播放
回复

使用道具 举报

结帖率:81% (17/21)
发表于 2012-2-4 11:12:11 | 显示全部楼层   北京市北京市
用多功能条好像不能实现,再加上一个滑块条,用标签的反馈事件就可以达到同步播放了
回复

使用道具 举报

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

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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