音乐播放器的歌词同步实现

本文介绍了如何实现音乐播放器的歌词同步。通过解析Lrc文件,创建歌词对象存储时间与歌词内容,读取文件并处理字符串。为了实现播放时歌词与音乐同步,需要获取音乐播放的当前时间,并调整时间判断方式为时间段,以解决毫秒级精度导致的显示问题。

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

 

首先,要下载对应的歌词Lrc文件。因为对应的lrc文件中有固定格式,如:[00:00.00]荷塘月色。前面是时间,可以通过字符串操作得到,进而转换为毫秒数或者其他格式。

我的想法:

1>先创建一个工具包类:

 


import java.awt.Color;

public class LrcDao {
	private double time = 0.0f;
	private String lyric = "";
	
	/*
	 * 获取时间
	 */
	public double getTime(){
		
		return time;
		
	}
	/*
	 * 设置时间
	 * tine :被设置成的时间
	 */
	public void setTime(double time){
		this.time = time;
	}
	/*
	 * 设置时间
	 * time:被设置成的时间字符串,格式为毫秒数
	 */
	//str[0]为分钟,str[1]为秒钟,str[2]为小数点后的数字
	public void setTime(String time ){
		String str[] = time.split(":|\\.");
		//this.time = Integer.parseInt(str[0])*60 + Integer.parseInt(str[1]) + Integer.parseInt(str[2])*0.01;
		//将这个时间化为毫秒数
		this.time = Integer.parseInt(str[0])*60*1000 + Integer.parseInt(str[1])*1000 + Integer.parseInt(str[2]);
	}
	
	
	
	
	/*
	 * 获取歌词
	 */
	public String getLyric(){
		
		return lyric;
	}
	
	public void setLyric(String lyric){
		
		this.lyric = lyric;
	}
	
}

 

2>以上工具包类的作用是存储每一行歌词,每一行歌词创建一个以上的对象,每个对象中有两个属性:这一行显示的时间和这一行显示的字符串。

接下来就要读取Lrc文件,进而处理字符串,


import jav
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值