当前位置: 首页 > 编程笔记 >

Android 开源在线音乐播放器

林弘文
2023-03-14
本文向大家介绍Android 开源在线音乐播放器,包括了Android 开源在线音乐播放器的使用技巧和注意事项,需要的朋友参考一下

封面图: 

简介

  1. 波尼音乐是一款开源Android在线音乐播放器。
  2. 播放本地音乐与在线音乐
  3. 在线音乐排行榜,如热歌榜、新歌榜等
  4. 高仿云音乐的黑胶唱片专辑封面
  5. 歌词显示,自动搜索歌词
  6. 夜间模式
  7. 定时关闭

更新说明
v 1.0
First Release

TODO

在线音乐可以免下载加入我的音乐列表
在线音乐自动缓存
编辑音乐信息

项目公开API
在线音乐:百度音乐
天气数据:高德地图

开源技术

okhttp-utils
Android-Universal-Image-Loader

关键代码

黑胶唱片专辑封面绘制流程

@Override
protected void onDraw(Canvas canvas) {
  // 1.绘制顶部虚线
  mTopLine.setBounds(0, getTop(), getWidth(), getTop() + mTopLineHeight);
  mTopLine.draw(canvas);
  // 2.绘制黑胶唱片外侧半透明边框
  mCoverBorder.setBounds(mDiscPoint.x - mCoverBorderWidth, mDiscPoint.y - mCoverBorderWidth,
      mDiscPoint.x + mDiscBitmap.getWidth() + mCoverBorderWidth, mDiscPoint.y +
          mDiscBitmap.getHeight() + mCoverBorderWidth);
  mCoverBorder.draw(canvas);
  // 3.绘制黑胶
  // 设置旋转中心和旋转角度,setRotate和preTranslate顺序很重要
  mDiscMatrix.setRotate(mDiscRotation, mDiscCenterPoint.x, mDiscCenterPoint.y);
  // 设置图片起始坐标
  mDiscMatrix.preTranslate(mDiscPoint.x, mDiscPoint.y);
  canvas.drawBitmap(mDiscBitmap, mDiscMatrix, null);
  // 4.绘制封面
  mCoverMatrix.setRotate(mDiscRotation, mCoverCenterPoint.x, mCoverCenterPoint.y);
  mCoverMatrix.preTranslate(mCoverPoint.x, mCoverPoint.y);
  canvas.drawBitmap(mCoverBitmap, mCoverMatrix, null);
  // 5.绘制指针
  mNeedleMatrix.setRotate(mNeedleRotation, mNeedleCenterPoint.x, mNeedleCenterPoint.y);
  mNeedleMatrix.preTranslate(mNeedlePoint.x, mNeedlePoint.y);
  canvas.drawBitmap(mNeedleBitmap, mNeedleMatrix, null);
}

歌词绘制流程

@Override
protected void onDraw(Canvas canvas) {
  super.onDraw(canvas);
  // 中心Y坐标
  float centerY = getHeight() / 2 + mTextSize / 2 + mAnimOffset;
 
  // 无歌词文件
  if (!hasLrc()) {
    float centerX = (getWidth() - mCurrentPaint.measureText(label)) / 2;
    canvas.drawText(label, centerX, centerY, mCurrentPaint);
    return;
  }
 
  // 画当前行
  String currStr = mLrcTexts.get(mCurrentLine);
  float currX = (getWidth() - mCurrentPaint.measureText(currStr)) / 2;
  canvas.drawText(currStr, currX, centerY, mCurrentPaint);
 
  // 画当前行上面的
  for (int i = mCurrentLine - 1; i >= 0; i--) {
    String upStr = mLrcTexts.get(i);
    float upX = (getWidth() - mNormalPaint.measureText(upStr)) / 2;
    float upY = centerY - (mTextSize + mDividerHeight) * (mCurrentLine - i);
    // 超出屏幕停止绘制
    if (upY - mTextSize < 0) {
      break;
    }
    canvas.drawText(upStr, upX, upY, mNormalPaint);
  }
 
  // 画当前行下面的
  for (int i = mCurrentLine + 1; i < mLrcTimes.size(); i++) {
    String downStr = mLrcTexts.get(i);
    float downX = (getWidth() - mNormalPaint.measureText(downStr)) / 2;
    float downY = centerY + (mTextSize + mDividerHeight) * (i - mCurrentLine);
    // 超出屏幕停止绘制
    if (downY > getHeight()) {
      break;
    }
    canvas.drawText(downStr, downX, downY, mNormalPaint);
  }
}

以上就是Android 开源在线音乐播放器的资料整理,后续继续补充相关资料,谢谢大家对本站的支持!

 类似资料:
  • 本文向大家介绍Android开发简易音乐播放器,包括了Android开发简易音乐播放器的使用技巧和注意事项,需要的朋友参考一下 这里介绍一个简易的音乐播放器,供大家参考,具体内容如下 效果图如下: 但是,由于这是一个简易版的音乐播放器,所播放的音乐只有一首,且被写死,但,操作却十分简单,方便理解! 这是代码的主要设计: 音乐主要存放在这一个文件中: 下面就来介绍各部分代码: activity—ma

  • 本文向大家介绍python开发简易版在线音乐播放器,包括了python开发简易版在线音乐播放器的使用技巧和注意事项,需要的朋友参考一下 在线音乐播放器,使用python的Tkinter库做了一个界面,感觉这个库使用起来还是挺方便的,音乐的数据来自网易云音乐的一个接口,通过urllib.urlopen模块打开网址,使用Json模块进行数据的解析,最后使用mp3play库对音乐进行在线播放,也可以同时

  • 本文向大家介绍Python实现在线音乐播放器,包括了Python实现在线音乐播放器的使用技巧和注意事项,需要的朋友参考一下 最近这几天,学习了一下python,对于爬虫比较感兴趣,就做了一个简单的爬虫项目,使用Python的库Tkinsert做了一个界面,感觉这个库使用起来还是挺方便的,音乐的数据来自网易云音乐的一个接口,通过requests模块,get请求将数据获得,使用Json模块进行数据的解

  • ap.playBackgroundAudio(OPTION, CALLBACK) 开始播放音乐。 OPTION 参数说明 名称 类型 必选 描述 url String 是 音乐链接地址 title String 否 音乐标题 singer String 否 演唱者 describe String 否 音乐描述 logo String 否 logo URL cover String 否 封面 URL

  • 本文向大家介绍Android媒体开发之音乐播放器,包括了Android媒体开发之音乐播放器的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Android媒体开发之音乐播放器的具体代码,供大家参考,具体内容如下 可以对音乐文件实现播放、暂停、重播和停止功能。退出应用和回到桌面时音乐停止。 主界面:   主界面配置文件mian.xml: 主界面的Activity MainActivity

  • 本文向大家介绍Android编程开发音乐播放器实例,包括了Android编程开发音乐播放器实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android编程开发音乐播放器,分享给大家供大家参考,具体如下: 音乐播放器中综合了以下内容: SeekBar、ListView、广播接收者(以代码的形式注册Receiver)、系统服务、MediaPlayer 实现的功能: 1.暂停/播放、下一首