歌词解析(音乐播放器)

转载 2015年07月06日 19:34:47

源文件出处:http://www.cnblogs.com/catKingCraig/p/4625006.html
小喵iOS开发成长记:歌词解析(音乐播放器)
没有盗用的意思,只是感觉写的好,所以转载一下让有需要的看看


/*
歌词格式:
[00:08.460]I'm hurting baby\n
[00:10.450]I'm broken down \n
解析代码:
*/
#pragma mark --- addLyric
//取出歌词这个大的字符串,这个可以自己写啦~~~
- (void)addLyric{
    NSString *string = [self.musicArray[self.musicInteger]lyric];
    [self splitLyricString:string];
}

#pragma mark --- loadLyric
//处理歌词的源数据
- (void)splitLyricString:(NSString *)lyricString{
    //将歌词的数据 用\n分成一个数组
    NSArray *arr = [lyricString componentsSeparatedByString:@"\n"];
    //调用数据的处理方法
    [self arrayWithLyric:arr];

}

// 数据处理的方法
- (void)arrayWithLyric:(NSArray *)lyricArr{
    //初始化三个string 和 歌词、时间的数组 存储数据
    NSString *string = nil;
    NSString *string1 = nil;
    NSString *string2 = nil;
    self.timeArray = [NSMutableArray array];
    self.lyricArray = [NSMutableArray array];

    //循环存放所有歌词的数组
    for (int i = 0; i < lyricArr.count; i ++) {
        //给string赋值,准备作为截取的字符串
        string = lyricArr[i];
         // 去除脏数据,暂时认定 如果字符串长度小于11的话 是只有时间的,这样的数据 对我们的操作有影响,所以不要
        if (string.length > 11) {
            //把字符串 根据字符 ]分成一个数组
            NSArray *array = [string componentsSeparatedByString:@"]"];
            string1 = array[0];
            string2 = array[1];
            //数组的第一个元素是时间 所以加入时间数组
            [self.timeArray addObject:string1];
            //数组的第二个元素是歌词,所以加入歌词数组
            [self.lyricArray addObject:string2];
        }
    }
     //数据处理完毕之后 刷新tableView
    [self.tableView reloadData];
    //对时间数组的第一步操作
    [self arrayWithTimeArray:self.timeArray];
}

- (void)arrayWithTimeArray:(NSMutableArray *)timeArray{
    //初始化一个字符串
    NSString *string = nil;
    //对时间数组 进行遍历
    for (int i = 0; i < timeArray.count; i ++) {
        //拿到时间数组在 i 位置的字符串
        string = timeArray[i];
         //替换掉字符串中的 “[” 字符和  “]” 字符
        string = [string stringByReplacingOccurrencesOfString:@"[" withString:@""];
        string = [string stringByReplacingOccurrencesOfString:@"]" withString:@""];
         //替换掉时间数组中相对应位置的数据
        [self.timeArray replaceObjectAtIndex:i withObject:string];
    }
    //对时间数组的最后一步处理
    [self arrayWithOnTimeWithTimeArray];
}

- (void)arrayWithOnTimeWithTimeArray{
    NSArray *array = nil;
    for (int i = 0; i < self.timeArray.count; i ++) {
        //根据 字符 ":" 将时间数组中 在 “i” 位置的元素拆分成一个数组
        array = [self.timeArray[i] componentsSeparatedByString:@":"];
        //取得分钟, 分钟*60 得到秒数
        NSInteger minute = [array[0] integerValue] * 60;
        //取得秒数
        float second = [array[1] floatValue];
        //两者相加
        float time = minute + second;
        //数组中需要存入对象,所以转成nsnumber对象
        NSNumber *number = [NSNumber numberWithFloat:time];
        //替换时间数组,都转成只有时间对象的数据
        [self.timeArray replaceObjectAtIndex:i withObject:number];
    }
}

C语言 解析lrc歌词文件

用C语言将lrc歌词文件的时间轴和歌词解析出来,支持单行多时间轴。
  • Equim
  • Equim
  • 2016年01月06日 15:13
  • 1438

Java LRC 歌词解析

import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import ja...
  • u012076028
  • u012076028
  • 2014年11月13日 14:57
  • 1596

Android解析lrc里的歌词

解析记歌词的类。这是解析 package com.zzm.android.Handler; import java.io.BufferedReader; import java.io.File;...
  • u011736532
  • u011736532
  • 2014年09月26日 11:32
  • 1690

Android练习项目 Mp3播放器实现 歌词解析(三)

这是系列博客的第三篇,这一篇主要讲讲如何实现lrc歌词的解析,这个对于很多mp3的播放的同时看到歌词,十分重要。这也是其中比较重要的功能。那就需要首先看下lrc文件的基本构造,这样才能够按照固定的规律...
  • u013766436
  • u013766436
  • 2016年04月20日 23:57
  • 908

如何用js完美的解析lrc歌词

要想解析lrc,就得先知道lrc是什么,lrc是英文lyric(歌词)的缩写,基于纯文本的歌词专用格式,被用做歌词文件的扩展名。以lrc为扩展名的歌词文件可以在各类数码播放器中同步显示,最早是由郭祥祥...
  • XU1432566997
  • XU1432566997
  • 2015年12月18日 23:04
  • 5967

unity 解析歌词文本

上面方法是使用数组 下面是使用list 获取lrc 文件的,获取到后 就可以用上面的随便一种进行分割    //根据时间对数据排列     public string[] SortLyricArr...
  • chuan403082010
  • chuan403082010
  • 2017年03月13日 09:26
  • 263

我的Android进阶之旅------>Android自定义View来实现解析lrc歌词并同步滚动、上下拖动、缩放歌词的功能

前言 一LRC歌词文件简介 1什么是LRC歌词文件 2LRC歌词文件的格式 LRC歌词文件的标签类型 1标识标签 2时间标签 二解析LRC歌词 1读取出歌词文件 2解析得到的歌词内容 1表示每行歌词内...
  • qq446282412
  • qq446282412
  • 2016年03月06日 14:53
  • 5978

用 python 解析歌词

# 2.解析歌词 musicLrc = """[00:03.50]传奇 [00:19.10]作词:刘兵 作曲:李健 [00:20.60]演唱:王菲 [00:26.60] [04:40.75]...
  • cats_miao
  • cats_miao
  • 2018年01月06日 21:27
  • 35

酷狗的krc歌词文件的解析

酷狗的krc歌词文件的解析,弄了很久才知道krc文件是加密的,需要
  • qingzi635533
  • qingzi635533
  • 2014年06月12日 11:54
  • 5847

C++中使用std::regex提取lrc歌词文件

提取lrc文件 本文介绍使用C++11中新增的std::regex而不是boost::regex提取lrc歌词文件中的信息。...
  • xiahn1a
  • xiahn1a
  • 2015年06月18日 03:45
  • 822
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:歌词解析(音乐播放器)
举报原因:
原因补充:

(最多只允许输入30个字)