英语听读小程序里的两个交互细节:逐词高亮与点句回听

AI摘要
【内容总结】 本文为开发者分享微信小程序LumaLingo的技术实现,属知识分享。内容涉及播放进度估算与高亮刷新解耦、点句回听时播放器与正文状态同步、手动滚动与自动跟随协调等前端交互细节,并说明产品功能与会员模式,附小程序码邀请试用反馈。

我是 LumaLingo 的开发者。做这个微信小程序时,我希望把原声视频、英文正文、译文和词汇解释放在同一条学习流程里。这篇分享两个实际实现细节,也欢迎同行指出改进空间。

播放进度更新与高亮刷新不必绑成同一个频率

如果只在播放器的进度回调到达时更新高亮,短词的视觉变化可能显得跳跃。当前实现记录最近一次回调的媒体时间和本机时间,在播放期间按播放速率估算中间位置;每次收到新的播放器时间,再重新建立锚点。

核心关系是:估算位置 = 最近的媒体时间 + 两次回调之间经过的时间 × 播放速率。当前页面用 100ms 的定时器更新阅读位置,暂停时不继续推进。估算只服务于显示,后续回调仍以播放器实际报告的时间为准。

这一步不能代替素材的词句时间对齐。时间轴本身错了,再平滑的高亮也只是更平滑地标错位置。拖动、暂停、变速以及切换页面,也都需要检查状态是否重新同步。

点句回听应同时处理播放器和正文状态

句子关联自己的起始时间。点击后先检查时间值存在且有限,再调用播放器 seek 和 play,并立即同步阅读位置。只有跳转播放器而不更新正文,会让用户短暂看到旧高亮;反过来只改高亮,则声音根本没有回到目标句。

页面还涉及用户手动滚动与自动跟随的协调:用户正在阅读别处时,应避免自动滚动反复把他拉回;明确点句回听时,再恢复对应位置的跟随。

这些都是小动作,但学习者遇到一句没听清的话时,会连续使用定位、核对、回听。任何一步别扭,都可能打断练习。

产品说明:LumaLingo 是微信小程序,提供原声视频、双语正文、重点词义音标、调速和生词收藏,有试用及会员内容,不提供口语录音评分。本文属于开发者分享与自荐,文字经 AI 辅助整理,技术描述已对照当前页面实现核查。

下面附小程序码,欢迎试用并反馈具体课程与复现步骤。

LumaLingo 微信小程序码

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
未填写
文章
1
粉丝
0
喜欢
0
收藏
0
排名:3887
访问:0
私信
所有博文
社区赞助商