package com.example.musicplayer.entiy; import org.litepal.LitePal; import org.litepal.crud.LitePalSupport; /** *
* author : 残渊 * time : 2018/10/10 * desc : 该类用于表示本地歌曲的相关信息实体,旨在对存储在本地设备中的歌曲各项关键属性进行记录和管理, * 方便音乐播放器在本地音乐播放场景下,对这些歌曲进行展示、播放以及相关操作的处理等。 **/ // LocalSong类继承自LitePalSupport类,这样它就能借助LitePal框架提供的便捷功能,轻松实现与本地数据库的交互操作, // 例如可以方便地将本地歌曲信息保存到数据库中(持久化存储),从数据库里查询符合特定条件的本地歌曲记录, // 更新已有本地歌曲记录的属性值,或者删除不再需要的本地歌曲记录等,有助于高效地管理本地歌曲数据资源。 public class LocalSong extends LitePalSupport { /** * 用于唯一标识每一首本地歌曲记录的标识符,在数据库存储中充当主键的角色, * 每一首存储在本地的歌曲在数据库里都会有一个与之对应的唯一整数值,通过这个值能够精准地定位、查询、修改或者删除对应的本地歌曲记录, * 一般情况下,该主键值由数据库按照自身既定的规则(比如常见的自增规则)自动生成,以此保证每条本地歌曲记录都能被准确区分和操作,便于数据库层面的高效管理。 */ private int id; /** * 歌曲在整个音乐系统中的唯一标识,这是一个字符串类型的标识,它能够在不同的模块、数据源以及业务场景下准确区分每一首歌曲, * 比如在关联歌曲的详细信息(像歌词、歌曲评论等内容,如果存在相应的关联机制)、与外部音乐服务器(若有交互需求)验证歌曲身份, * 或者在多个播放列表中匹配具体歌曲时,都会依靠这个唯一标识来确定具体的歌曲实体,它确保了歌曲数据在整个音乐生态系统中的一致性和准确性。 */ private String songId; /** * 可能是与QQ音乐平台相关的唯一标识(从变量名推测),如果音乐播放器支持与QQ音乐进行数据交互或者整合, * 这个标识可以用于在QQ音乐的系统中准确查找对应的歌曲资源、匹配用户在QQ音乐上的相关操作记录(如收藏、分享等), * 方便实现跨平台的数据关联和功能融合,不过具体含义和使用方式取决于应用与QQ音乐的集成程度以及相应的业务逻辑要求。 */ private String qqId; /** * 歌曲的名称,以直观易懂的字符串形式呈现给用户,是用户识别本地歌曲的重要依据,通常遵循歌曲发布时的官方命名, * 具有较高的规范性和唯一性,便于用户在本地歌曲列表中快速找到自己想听的歌曲,同时也是在界面展示本地歌曲时最直观展示的信息之一。 */ private String name; /** * 歌曲的演唱者信息,明确指出了是哪位歌手或者演唱组合演绎了这首歌曲,以字符串形式存储演唱主体的名称, * 用户通过查看演唱者信息能更好地了解歌曲的风格、背景等情况,并且在本地歌曲管理中,也方便基于演唱者进行歌曲的分类、筛选等操作, * 例如用户可以查找某个特定歌手的所有本地歌曲来创建个性化的播放列表等。 */ private String singer; /** * 歌曲文件在本地存储的路径或者网络链接(如果支持本地网络共享播放等情况),它指向了歌曲资源所在的具体位置, * 通过这个链接或者路径,音乐播放器能够准确地找到歌曲文件并进行播放操作,同时在对本地歌曲资源进行管理(如文件迁移、验证文件有效性等)时, * 这个属性也起着关键的作用,确保本地歌曲资源的正确获取和使用。 */ private String url; /** * 歌曲封面图片的链接地址,用于获取与这首歌曲相关联的封面图片资源,一般以网络链接的形式存在(也可能是本地图片路径,取决于应用设计), * 在音乐播放器的本地歌曲展示界面中,通过这个链接可以加载对应的图片并展示在相应的歌曲条目上, * 精美的封面图片不仅能够提升界面的美观度,还能帮助用户更直观地感受到歌曲的风格特点,增强用户体验。 */ private String pic; /** * 歌曲的时长信息,以长整型数据来表示歌曲从开始播放到结束所持续的时间长度,单位通常为秒(s)或者毫秒(ms),具体取决于应用的内部设定, * 在本地歌曲管理中,这个属性可以让用户提前了解歌曲的长短情况,方便用户根据自己的时间安排选择播放; * 同时在播放相关的业务逻辑(如进度条的时长计算、显示已播放和剩余播放时间,以及统计用户的播放时长等功能实现)中也有着重要作用。 */ private long duration; /** * 获取当前本地歌曲记录在数据库中的唯一标识(主键)的方法,外部代码通过调用此方法, * 能够获取到一个整数值,该值可用于在数据库相关操作(如查询、更新、删除该歌曲记录等)中准确地定位到对应的记录, * 保证数据库操作的准确性和针对性,是对本地歌曲记录进行数据库层面操作的关键入口之一。 * @return 返回表示歌曲记录主键的整数值。 */ public int getId() { return id; } /** * 设置当前本地歌曲记录在数据库中的唯一标识(主键)的方法,不过正常情况下, * 这个主键值由数据库自动管理和分配,很少会被外部代码直接调用修改, * 只有在一些特殊的业务场景下(如数据迁移过程中需要手动调整主键值、数据库记录出现异常需要修正主键等情况)才会使用, * 通过传入一个合法的整数值来更新当前LocalSong对象的主键信息。 * @param id 要设置的歌曲记录主键的整数值。 */ public int setId(int id) { this.id = id; return this.id; } /** * 获取歌曲名称的方法,外部代码调用此方法后,会返回一个字符串,该字符串即为当前LocalSong对象所代表的本地歌曲的名称, * 在本地歌曲列表展示、搜索本地歌曲以及其他基于歌曲名称的业务逻辑(如按照名称排序等)中, * 这个方法提供了获取歌曲名称信息的途径,方便进行相应的操作和展示。 * @return 返回表示歌曲名称的字符串。 */ public String getName() { return name; } /** * 设置歌曲名称的方法,当出现歌曲名称需要变更的情况时(例如歌曲在音乐平台上更新了官方名称、用户手动修改了本地保存的歌曲名称等), * 外部代码可以通过传入一个新的字符串作为参数来更新当前LocalSong对象中的歌曲名称属性, * 确保歌曲名称信息在本地歌曲管理中的准确性和及时性,便于用户准确识别和播放本地歌曲。 * @param name 要设置的歌曲名称字符串。 */ public void setName(String name) { this.name = name; } /** * 获取歌曲演唱者信息的方法,调用此方法后,外部代码将获取到一个字符串,该字符串代表了演唱这首本地歌曲的歌手或者演唱组合的名称, * 在本地歌曲展示界面中通过展示演唱者信息可以让用户更好地了解歌曲背景,同时在基于演唱者的相关业务操作(如按照演唱者筛选本地歌曲等)中, * 这个方法提供了关键的演唱者信息获取途径,方便进行分类管理和查询。 * @return 返回表示演唱者的字符串。 */ public String getSinger() { return singer; } /** * 设置歌曲演唱者信息的方法,当发现已保存的演唱者信息不准确或者获取到了更准确的演唱主体名称时(比如数据源更新了演唱者信息等情况), * 外部代码可以通过传入正确的演唱者名称字符串来更新当前LocalSong对象中的演唱者属性, * 使得本地歌曲相关信息始终保持准确可靠,便于用户准确识别和管理本地歌曲。 * @param singer 要设置的演唱者信息字符串。 */ public void setSinger(String singer) { this.singer = singer; } /** * 获取歌曲文件所在位置(路径或链接)的方法,外部代码调用此方法会返回一个字符串,这个字符串就是指向歌曲文件所在位置的信息, * 在音乐播放器对本地歌曲进行播放、管理(如文件验证、迁移等操作)时,依据这个位置信息能够准确找到歌曲文件, * 确保本地歌曲资源的可用性和正确使用,同时也方便进行一些基于文件位置的统计分析等业务操作。 * @return 返回表示歌曲文件位置(路径或链接)的字符串。 */ public String getUrl() { return url; } /** * 设置歌曲文件所在位置(路径或链接)的方法,当原有的文件位置信息发生变化(如文件移动到新的本地路径、网络共享链接变更等情况)或者获取到了新的有效位置信息时, * 外部代码可以通过传入新的位置信息字符串作为参数来更新当前LocalSong对象中的url属性, * 确保后续在需要获取歌曲文件时能够顺利进行操作,保证本地歌曲管理中文件位置信息的准确性和有效性。 * @param url 要设置的歌曲文件位置(路径或链接)的字符串。 */ public void setUrl(String url) { this.url = url; } /** * 获取歌曲封面图片链接地址的方法,调用此方法后,外部代码将得到一个字符串,这个字符串指向了与该歌曲相关联的封面图片资源所在位置, * 在本地歌曲展示的界面环节(如在本地歌曲列表中展示封面缩略图、在播放界面展示高清封面等), * 可以依据这个链接去加载对应的图片,提升界面的美观度,帮助用户更直观地感受到歌曲的风格特点,增强用户查看本地歌曲的体验。 * @return 返回表示封面图片链接的字符串。 */ public String getPic() { return pic; } /** * 设置歌曲封面图片链接地址的方法,当封面图片发生变更(如图片更新、更换了图片来源、原链接不可用等情况)时, * 外部代码可以通过传入新的封面图片链接字符串来更新当前LocalSong对象中的封面图片链接属性, * 保证界面能够展示正确、美观的封面图片,让本地歌曲展示更加准确和吸引人。 * @param pic 要设置的封面图片链接字符串。 */ public void setPic(String pic) { this.pic = pic; } /** * 设置歌曲时长信息的方法,当获取到了更准确的歌曲时长数据(例如最初记录的时长有误、歌曲版本更新导致时长发生变化等情况)时, * 外部代码可以通过传入一个代表正确时长的长整型数值作为参数,来更新当前LocalSong对象中的歌曲时长属性, * 确保时长信息在本地歌曲管理中的准确性,以便在播放等相关业务逻辑中正确使用该时长数据。 * @param duration 要设置的歌曲时长的长整型数值(单位如秒等)。 */ public void setDuration(long duration) { this.duration = duration; } /** * 获取歌曲时长信息的方法,外部代码调用此方法后,会返回一个长整型数值,该数值代表了当前LocalSong对象所对应的本地歌曲的时长, * 在本地歌曲展示(如显示歌曲时长给用户查看)以及播放相关的业务逻辑(如进度条根据时长计算播放进度、统计用户播放时长等)中, * 这个方法提供了获取歌曲时长的途径,方便进行相应的操作和展示。 * @return 返回表示歌曲时长的长整型数值(单位如秒等)。 */ public long getDuration() { return duration; } /** * 设置歌曲在整个音乐系统中的唯一标识的方法,在一些特定业务场景下(如与其他音乐系统或数据源进行数据同步、整合, * 导致歌曲的唯一标识发生变化等情况),外部代码可以通过传入新的歌曲唯一标识字符串作为参数, * 来更新当前LocalSong对象中的songId属性,保证歌曲在不同系统或业务场景间能够准确对应和识别,维持本地歌曲数据的准确性。 * @param songId 要设置的歌曲唯一标识的字符串。 */ public void setSongId(String songId) { this.songId = songId; } /** * 获取歌曲在整个音乐系统中的唯一标识的方法,外部代码调用此方法后,会得到一个字符串, * 这个字符串就是当前LocalSong对象所代表的本地歌曲在整个音乐系统中的唯一标识, * 在进行与歌曲相关的各种操作(如查找关联信息、判断两首歌曲是否为同一首等)时, * 可以依靠这个标识进行准确的区分和定位,确保本地歌曲数据的准确性和一致性,方便数据的管理和利用。 * @return 返回表示歌曲唯一标识的字符串。 */ public String getSongId() { return songId; } /** * 获取与QQ音乐平台相关的唯一标识(推测用途)的方法,外部代码调用此方法后,会得到一个字符串, * 这个字符串就是当前LocalSong对象对应的QQ音乐相关标识,在涉及与QQ音乐进行数据交互、关联用户在QQ音乐上的操作记录等业务场景中, * 这个标识起到了关键的定位和匹配作用,方便实现跨平台的数据整合和功能拓展。 * @return 返回表示QQ音乐相关标识的字符串。 */ public String getQqId() { return qqId; } /** * 设置与QQ音乐平台相关的唯一标识(推测用途)的方法,当在与QQ音乐的数据交互过程中,获取到了新的标识信息或者需要更新该标识时, * 外部代码可以通过传入新的QQ音乐相关标识字符串作为参数,来更新当前LocalSong对象中的qqId属性, * 确保跨平台数据关联的准确性和有效性,便于更好地整合和利用QQ音乐相关的数据资源。 * @param qqId 要设置的QQ音乐相关标识的字符串。 */ public void setQqId(String qqId) { this.qqId = qqId; } }