会员
周边
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
tomj2ee
博客园
首页
新随笔
联系
订阅
管理
2026年8月31日
怀念经典,一步步开发一个ttplayer千千静听,主播放器绘制
摘要: PlayerWindow 源码完整分析 PlayerWindow 是 TTPlayer 的主窗口类,继承自 SkinWindow。它是整个播放器的核心 UI 容器,负责承载主窗口上的所有控件(播放控制按钮、进度条、音量条、LED 时间显示、频谱可视化、信息标签等),并与 PlayerEngine 交
阅读全文
posted @ 2026-08-31 18:25 tomj2ee
阅读(37)
评论(0)
推荐(0)
2026年8月28日
怀念经典,一步步开发一个ttplayer千千静听,滚动条
摘要: 皮肤滚动条(SkinScrollBarUI)完整解析 一、滚动条在皮肤中的配置方式 千千静听的皮肤中,滚动条并不是通过窗口内部的 <scrollbar> 标签来定义的,而是通过独立的图片资源 + 可选的 XML 配置来实现皮肤化。通常,皮肤包(.skn)中会包含以下图片(命名约定): scroll_
阅读全文
posted @ 2026-08-28 14:59 tomj2ee
阅读(9)
评论(0)
推荐(0)
怀念经典,一步步开发一个ttplayer千千静听,有哪些难点和踩坑
摘要: 从零开发千千静听:分步指南与技术难点全记录 如果你也想手搓一个复古播放器,这份清单帮你避开我踩过的所有坑。 在经历了皮肤拆解、SkinWindow 源码分析之后,你已经有了理论储备。但真正动手开发时,依然会碰到大量“意料之外”的问题。本文将从零开始,给出一个完整的开发步骤,并在每一步标注出核心难点和
阅读全文
posted @ 2026-08-28 14:59 tomj2ee
阅读(23)
评论(0)
推荐(0)
怀念经典,一步步开发一个ttplayer千千静听,迷你模式窗口
摘要: MiniWindow 源码完整深度剖析 一、概述 MiniWindow 是千千静听(TTPlayer)的迷你模式窗口,它继承自 SkinWindow,利用同一份皮肤资源(mini_window 窗口定义)构建出一个紧凑版的播放器界面。迷你窗口通常用于将播放器缩小到屏幕角落,仅保留最核心的控制功能(播
阅读全文
posted @ 2026-08-28 14:02 tomj2ee
阅读(23)
评论(0)
推荐(0)
怀念经典,一步步开发一个ttplayer千千静听,led绘制
摘要: 我们先从千千静听(TTPlayer)的 LED 显示机制讲起,包括它在皮肤 XML 中的定义方式,然后对 TtLed 这个类的源码进行逐行、深度剖析。 第一部分:千千静听的 LED 显示是什么? 1. 视觉风格与用途 在千千静听中,LED 显示指的是主窗口中间那块模拟老式数码管(VFD 荧光显示或
阅读全文
posted @ 2026-08-28 13:15 tomj2ee
阅读(14)
评论(0)
推荐(0)
怀念经典,一步步开发一个ttplayer千千静听,播放列表
摘要: PlaylistWindow 播放列表窗口源码完整分解 PlaylistWindow 是 TTPlayer 中负责管理播放列表的核心窗口,继承自 SkinWindow,因此拥有皮肤背景、九宫格缩放、自定义边框等能力。它包含左侧的播放列表切换列表和右侧的歌曲列表,支持添加、删除、排序、查找、播放模式切
阅读全文
posted @ 2026-08-28 12:25 tomj2ee
阅读(16)
评论(0)
推荐(0)
怀念经典,一步步开发一个ttplayer千千静听,歌词查找
摘要: LRCParser 源码完整分析 LRCParser 是用于解析 LRC(歌词)文件的工具类,支持标准 LRC 格式([mm:ss.xx] 时间标签)、增强型 LRC(逐词卡拉 OK,通过 <时间戳> 标记)、ID3 元信息标签([ti:], [ar:] 等),并具备自动字符集检测功能,以正确处理
阅读全文
posted @ 2026-08-28 12:12 tomj2ee
阅读(17)
评论(0)
推荐(0)
怀念经典,一步步开发一个ttplayer千千静听,播放引擎
摘要: PlayerEngine 源码完整分析 一、概述 PlayerEngine 是音频播放引擎,使用 JavaCV 封装的 FFmpeg 进行解码,通过 javax.sound.sampled.SourceDataLine 输出音频。它支持播放/暂停/停止、Seek、音量控制、静音、均衡器(Equali
阅读全文
posted @ 2026-08-28 12:03 tomj2ee
阅读(8)
评论(0)
推荐(0)
怀念经典,一步步开发一个ttplayer千千静听,皮肤切换
摘要: SkinSelectDialog 皮肤切换代码完整解析 SkinSelectDialog 是 TTPlayer 的皮肤选择对话框,它扫描可用的皮肤资源,以列表 + 预览图的形式展示,并允许用户切换皮肤。切换逻辑主要围绕 selectedSkinSpec 字段展开——当用户点击“切换”按钮时,将选中的
阅读全文
posted @ 2026-08-28 11:53 tomj2ee
阅读(9)
评论(0)
推荐(0)
怀念经典,一步步开发一个ttplayer千千静听,歌词秀
摘要: 歌词窗口(LyricWindow)完整解析 一、皮肤 XML 中的定义 LyricWindow 对应皮肤文件中的 <lyric_window> 节点。与 <main_window>、<mini_window> 类似,它定义了一个独立的窗口,专门用于显示滚动歌词。 1.1 典型 XML 结构 <lyr
阅读全文
posted @ 2026-08-28 11:45 tomj2ee
阅读(16)
评论(0)
推荐(0)
下一页
公告