失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > android音乐播放器歌词解析 iOS 音乐播放器歌词解析

android音乐播放器歌词解析 iOS 音乐播放器歌词解析

时间:2022-10-18 13:07:22

相关推荐

android音乐播放器歌词解析 iOS 音乐播放器歌词解析

目前常接触的歌词格式

未来会接触的歌词格式(我没接触过)

看到这歌词就懵逼,但我觉得这应该有两个属性,一个是time,一个是歌词

首先根据读取歌词

扣除多余部分

根据每句歌词中间的“]”创建模型

//放开一个方法根据歌词名解析

/** 歌词名 */

@property (nonatomic, copy) NSString *lrcName;

#pragma mark - 重写lrcName

- (void)setLrcName:(NSString *)lrcName

{

// 1.记录歌词名

_lrcName = lrcName ;

// 2.model解析歌词

self.lrcList = [ZJLrcTool lrcToolWithLrcName:lrcName];

// 3.刷新表格

[self.tableView reloadData];

}

#import

@interface ZJLrcLine : NSObject

@property (nonatomic, copy) NSString *text;

@property (nonatomic, assign) NSTimeInterval time;

- (instancetype)initWithLrcLineString:(NSString *)lrcLineString;

+ (instancetype)LrcLineString:(NSString *)lrcLineString;

@end

#import "ZJLrcLine.h"

@implementation XMGLrcLine

- (instancetype)initWithLrcLineString:(NSString *)lrcLineString

{

if (self = [super init]) {

// [01:02.38]想你时你在天边

NSArray *lrcArray = [lrcLineString componentsSeparatedByString:@"]"];

self.text = lrcArray[1];

self.time = [self timeWithString:[lrcArray[0] substringFromIndex:1]];

}

return self;

}

+ (instancetype)LrcLineString:(NSString *)lrcLineString

{

return [[self alloc] initWithLrcLineString:lrcLineString];

}

- (NSTimeInterval)timeWithString:(NSString *)timeString

{

// 01:02.38

NSInteger min = [[timeString componentsSeparatedByString:@":"][0] integerValue];

NSInteger sec = [[timeString substringWithRange:NSMakeRange(3, 2)] integerValue];

NSInteger hs = [[timeString componentsSeparatedByString:@"."][1] integerValue];

return min * 60 + sec + hs * 0.01;

}

@end

最终效果

对于这种将来有时间在补全具体代码!无非就是生成数组的时候判断,以“]”划分会生成四部分,判断数组的count如果大于2个,每一个分别和最后一个都创建一个模型!

(需要数组从新排序,根据时间)ß

如果觉得《android音乐播放器歌词解析 iOS 音乐播放器歌词解析》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。