最近打算仿网易云音乐的音乐播放器,除了网络框架、接口数据等这些外,最核心的就是音乐的播放和歌词的显示。

考虑到歌词显示控件涉及到歌词解析,自定义控件的实现等等诸多方面,可能文章的篇幅上会比较冗长,同时也为了方便自己和码友们能够根据自己的需求和爱好各取所需,将《歌词显示控件的实现上》这篇文章分成上、下两篇,分别是《歌词显示控件的实现上——歌词解析》和《歌词显示控件的实现下——歌词展示自定义View》。而今天将要分享的是上篇,主要讲解关于*.lrc文件的解析。

我们本文的目的是将lrc格式的歌词文件进行解析,并能将其展示到界面。

先看下效果:

ok,开始切入正题

一、了解歌词文件结构

写过音乐播放器的朋友可能都了解过歌词文件的规范格式,既然是歌词显示的控件,就必然需要清楚地了解歌词文件的组成规范,才能准确无误的解析歌词文件,得到我们想要的信息。

那我们先看一个最普通的歌词文件:

[ti:一个人的北京]

[ar:好妹妹乐队]

[al:南北]

[by:]

[offset:0]

[00:00.10]一个人的北京 - 好妹妹乐队

[00:00.20]词:秦昊

[00:00.30]曲:秦昊

[00:00.40]

[00:30.16]你有多久没有看到 满天的繁星

android 歌词控件,歌词显示控件的实现上——歌词解析相关推荐

  1. 触摸控件与显示控件介绍

    1 显示控件和触摸控件 顾名思义,显示控件主要用于变量的显示,触摸控件主要用于配置触摸信息.每个控件都有独特的属性信息,依照需要进行设置. 显示控件: 有图标变量.数据变量.文本显示等,单页最多显示6 ...

  2. Android歌词显示控件TextView自定义

    1. 音乐播放,音乐播放,音乐播放放入服务中,那么App 退入后台音乐也可以播放 2. 歌词显示控件TextView自定义:    使用控件TextView,  为什么不用Listview,歌词不可以 ...

  3. android lrc 歌词view,自定义View强势来袭,用自定义View实现歌词显示控件下篇之自定义LyricView的实现...

    在上篇中,我与大家分享了关于如何进行*.lrc歌词文件的解析,以及将解析完成后的歌词展示在镶嵌在ScrollView中的TextView上,就这样而言,一个简单的歌词显示功能也就实现了. 但是,如何才 ...

  4. 自定义LyricView实现歌词显示控件

    声明:本博客转载自郭霖微信公众号,优秀博客值得多次转播. 地址http://mp.weixin.qq.com/s?__biz=MzA5MzI3NjE2MA==&mid=2650236950&a ...

  5. java 显示多行歌词_Java Swing制作多行滚动歌词显示控件 | 学步园

    首先上图一张,为最终制作的效果图,不喜欢或感到失望的朋友可以先行离开 大家已经看到效果图了.那么下面就介绍设计思路和源代码 首先要想显示歌词,就要对歌词文件进行抽象.下面这个类是对某一行歌词文件进行了 ...

  6. Android Studio Design界面不显示layout控件的解决方法

    Android Studio Design界面不显示layout控件的解决方法 参考文章: (1)Android Studio Design界面不显示layout控件的解决方法 (2)https:// ...

  7. android自定义控件不显示,解决Android Studio Design界面不显示layout控件的问题

    Android Studio更新到3.1.3后,发现拖到Design中的控件在预览界面中不显示: 解决办法: 在Styles.xml中的parent="..."中的Theme前添加 ...

  8. Android 时间显示控件 TextClock

    Android 时间显示控件 TextClock TextClock可用作显示时间,API>=17,用来替代DigitalClock. 系统设置以24小时格式的时候使用这个format andr ...

  9. Android kotlin 将Base64字符串转换成Bitmap,并在jetpack compose的Image控件中显示

    Android kotlin 将Base64字符串转换成Bitmap 前言 代码 将Base64字符串转换成Bitmap 在jetpack compose的Image控件中显示Bitmap 完事 前言 ...

最新文章

  1. 为什么不建议用 equals 判断对象相等?
  2. (转载)(官方)UE4--图像编程----Parallel Rendering Overview
  3. [原]java开发中遇到的问题及解决方法(持续更新)
  4. 收藏:视频网站(JavaEE+FFmpeg)/Nginx+ffmpeg实现流媒体直播点播系统
  5. RSA签名算法 - Java加密与安全
  6. cannot use a string pattern on a bytes-like object(bytes与str互转)
  7. 如何利用PHP会话显示出当前在线的用户
  8. python设计模式7-桥接模式
  9. dhcp 服务器发出了 dhcpnack 消息,跪求DHCP报文分析
  10. FreeBSD重新加载rc.conf
  11. 每天Leetcode 刷题 初级算法篇-汉明距离
  12. 7. where loop
  13. nexus和maven
  14. Eclipse中经常出现的问题解决方案
  15. 常见的软件生命周期模型
  16. 关闭WPS广告弹窗骚扰(Kingsoft Office 推荐)
  17. 提高淘宝店铺动态评分的四大技巧
  18. 寻找丢失的LZY(dfs)
  19. 前端,网页设计常用色彩搭配表
  20. 使用ECharts加载大数据量数据

热门文章

  1. 简单几步教你制作植物攀爬到建筑上
  2. 为什么边缘正在“吞噬”这个世界
  3. Android 10正式版发布,新特性来袭!
  4. 【正点原子FPGA连载】第四十一章OV5640摄像头RGB-LCD显示实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1
  5. 6831. 2020.10.24【NOIP提高A组】T1.lover
  6. P1424 小鱼的航程(改进版)【非循环】
  7. Adobe Photoshop CS4 官方简体中文版+正版序列号+安装教程
  8. 暴风二期安装黑群晖DS3617
  9. 打开U盘的文件报错:错误0x800700ea:有更多数据可用
  10. python三个箭头怎么打出来_IntelliJ IDEA 调试真香技巧