如何解析网易云音乐歌词并处理无歌词情况

本文将介绍如何使用 JavaScript 解析网易云音乐 API 获取歌词数据,并处理部分歌词为空的情况,将歌词数据转换为时间戳和对应歌词的格式。

lrc(songId) {
  wx.request({
    url: `https://music.163.com/api/song/lyric?os=pc&id=${songId}&lv=-1&kv=-1&tv=-1`,
    success: (res) => {
      // console.log(res);
      var str = res.data.lrc.lyric;
      var lyrics = [];
      // console.log(str);
      // 将歌词数组分割成一行一行
      var lines = str.split('\n');
      for (var i = 0; i < lines.length - 1; i++) {
        var line = lines[i];
        console.log(line);
        // 将时间与歌词分割开
        var timeLyric = line.split(']');
        // 判断是否有歌词
        if (timeLyric.length == 2) {
          // 有歌词
          // 取出时间并转成毫秒数
          var time = timeLyric[0].trim().replaceAll('[', '');
          var minute = parseInt(time.split(':')[0]);
          var second = parseFloat(time.split(':')[1]);
          var seconds = minute * 60 * 1000 + second * 1000;
          // 取出歌词
          var lyric = timeLyric[1].trim();
          console.log(time, lyric);
          var gqc = {};
          gqc.time = seconds;
          gqc.lyric = lyric;
          lyrics.push(gqc);
        } else {
          // 没有歌词
          var time = timeLyric[0].trim().replaceAll('[', '');
          var minute = parseInt(time.split(':')[0]);
          var second = parseFloat(time.split(':')[1]);
          var seconds = minute * 60 * 1000 + second * 1000;
          var lyric = '';
          var gqc = {};
          gqc.time = seconds;
          gqc.lyric = lyric;
          lyrics.push(gqc);
        }
      }
      this.setData({
        lyrics: lyrics,
      });
      console.log(lyrics);
    }
  })
},

代码解析:

  1. 获取歌词数据: 使用 wx.request 发送请求到网易云音乐 API 获取歌词数据。
  2. 分割歌词: 使用 split('\n') 将获取到的歌词字符串按行分割。
  3. 判断是否包含歌词: 使用 timeLyric.length == 2 判断分割后的数组长度是否为 2,如果为 2 表示包含歌词,否则表示没有歌词。
  4. 处理有歌词情况: 提取时间和歌词,并转换为时间戳和对应歌词的格式。
  5. 处理无歌词情况: 提取时间,并将歌词设为空字符串。
  6. 存储结果: 将处理后的时间和歌词数据存储到 lyrics 数组中。

使用示例:

lrc(1866549223); // 获取歌曲 ID 为 1866549223 的歌词

注意事项:

  1. 需要在微信小程序中使用此代码,并确保已经配置了 wx.request 的请求域名。
  2. 需要使用网易云音乐的 API 获取歌词数据,具体的 API 接口可以参考网易云音乐开发者文档。
  3. 如果歌词数据格式发生变化,需要调整代码进行适配。

总结:

本文介绍了如何解析网易云音乐 API 获取歌词数据,并处理部分歌词为空的情况,将歌词数据转换为时间戳和对应歌词的格式。希望本文能够帮助您更好地处理网易云音乐的歌词数据。


原文地址: https://www.cveoy.top/t/topic/oReE 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录