Java音乐播放程序,同步显示歌词(详细教程)

本文详细描述了如何用Java编写一个音乐播放程序,包括读取LRC歌词文件、解析歌词时间标签和文本、接入音乐并实现实时歌词同步。程序采用了冒泡排序算法对歌词按时间顺序排列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用java写一个音乐播放程序,同时显示歌词

目录

1.LRC歌词文件

2.解析歌词

 2.1对歌词进行解析

2.2对时间标签解析

2.3对歌词文件拆分

2.4歌词排序

 3.音乐接入

 4.整个程序

4.1  Yun2_4

4.2  Info

 4.3 Lyric


主题程序分为三部分{1.创建音乐播放窗口

                                  2.计时器

                                  3.对歌词进行处理

}

本程序运用了一个包,一个主程序,2个类进行处理歌词和时间

1.lrc歌词文件

在LRC歌词文本中,通常包含两类标签:时间标签和歌词文本标签。

  1. 时间标签:时间标签用于指定歌词的显示时间。它通常由方括号包围,并包含了歌词的起始时间和结束时间。时间标签的格式可以是分秒格式([mm:ss.xx])或者毫秒格式([mm:ss:xxx]),其中mm表示分钟,ss表示秒,xx或xxx表示毫秒。

示例:

[00:12.34]歌词内容
[01:23.45][02:34.56]歌词内容
 
 
  1. 歌词文本标签:歌词文本标签用于包含实际的歌词文本内容。它位于时间标签之后,直到下一个时间标签出现之前。歌词文本标签没有特定的格式要求,可以是任意文本内容。

示例:

 
 
[00:12.34]这是第一句歌词
[00:16.78]这是第二句歌词

通过使用这两类标签,LRC歌词文本可以指定每句歌词的显示时间,并且可以在指定的时间点显示相应的歌词内容。

2.解析歌词

这里以水星记歌词为例: 

[ti:水星记]
[ar:郭顶]
[al:飞行器的执行周期]
[by:]
[offset:0]
[00:00.00]水星记 - 郭顶
[00:06.50]词:郭顶
[00:13.00]曲:郭顶
[00:19.50]着迷于你眼睛
[00:21.81]
[00:23.21]银河有迹可循
[00:25.34]
[00:26.46]穿过时间的缝隙
[00:29.28]
[00:30.04]它依然真实地
[00:33.05]
[00:33.76]吸引我轨迹
[00:36.53]
[00:40.74]这瞬眼的光景
[00:43.25]
[00:44.27]最亲密的距离
[00:46.85]
[00:47.77]沿着你皮肤纹理 走
[00:51.68]过曲折手臂
[00:54.34]
[00:55.26]做个梦给你
[00:57.53]
[00:58.88]做个梦给你
[01:01.55]
[01:03.97]等到看你银色满际
[01:06.56]
[01:07.37]等到分不清季节更替
[01:11.89]
[01:13.24]才敢说沉溺
[01:16.38]
[01:20.28]还要多远才能进入你的心
[01:26.50]
[01:27.47]还要多久才能和你接近
[01:33.61]
[01:34.63]咫尺远近却
[01:37.08]无法靠近的那个人
[01:42.30]也等着和你相遇
[01:47.91]
[01:49.33]环游的行星
[01:52.05]
[01:52.57]怎么可以
[01:55.47]
[01:56.43]拥有你
[01:58.29]
[02:14.03]这瞬眼的光景
[02:16.57]
[02:17.42]最亲密的距离
[02:19.98]
[02:20.93]沿着你皮肤纹理
[02:24.61]走过曲折手臂
[02:27.66]
[02:28.36]做个梦给你
[02:30.78]
[02:31.88]做个梦给你
[02:34.92]
[02:36.89]等到看你银色满际
[02:40.59]等到分不清季节更替
[02:44.96]
[02:46.17]才敢说沉溺
[02:53.44]还要多远才能进入你的心
[02:59.70]
[03:00.63]还要多久才能和你接近
[03:06.78]
[03:07.73]咫尺远近却
[03:09.86]无法靠近的那个人
[03:15.43]也等着和你相遇
[03:20.94]
[03:22.13]环游的行星
[03:25.04]
[03:25.69]怎么可以
[03:29.38]拥有你
[03:35.83]
[04:05.52]还要多远才能进入你的心
[04:11.17]
[04:12.23]还要多久才能和你接近
[04:18.33]
[04:19.35]咫尺远近却无法靠近的那个人
[04:26.99]要怎么探寻
[04:30.62]要多么幸运
[04:33.84]才敢让你发觉你并不孤寂
[04:40.08]
[04:40.81]当我还可以再跟你飞行
[04:46.88]
[04:47.99]环游是无趣
[04:50.87]
[04:51.64]至少可以
[04:54.94]
[04:55.54]陪着你

 2.1对歌词进行解析

try (BufferedReader reader = new BufferedReader(new FileReader(fileName))) {
            /*
             * 使用try-with-resources语句,创建一个BufferedReader对象并初始化它
             *BufferedReader将使用FileReader来读取指定文件的内容*/
            String[] arrStr = new String[100];
            int cnt = 0;//用于记录行数
            String line;
            while ((line = reader.readLine()) != null) {
                arrStr[cnt] =
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值