封面图:
简介
更新说明
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.暂停/播放、下一首