首页 > Android 制作唱片旋转的音乐播放器 附代码解析

自动旋转光盘音乐播放器代码,Android 制作唱片旋转的音乐播放器 附代码解析

互联网 2021-01-18 15:02:33
在线算命,八字测算命理 时间:2020-01-02概述:播放器

Android 制作一个唱片式音乐播放器,模仿网易音乐播放器的音乐播放效果,主要使用Bitmap类中的 creatBitmap()方法、BitmapFactory 类中的 decodeResource()方法,下面是代码解析:

创建一个播放音乐的服务类,命名为“MusicSenace”,主要用于当界面对用户不可见时,还 能继续播放音乐,关键代码如下:

//编写个内部的广播class MusicReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {String action = intent.getAction(); //获取actionif (action.equals(ACTION_OPT_MUSIC_PLAY)) {//音乐播放play(mCurrentMusicIndex);} else if (action.equals(ACTION_OPT_MUSIC_PAUSE)) {//音乐暂停pause();//音乐暂停} else if (action.equals(ACTION_OPT_MUSIC_LAST)) { //上一首last(); //上一首音乐的方法} else if (action.equals(ACTION_OPT_MUSIC_NEXT)) {//下一首next();//下一首音乐的方法} else if (action.equals(ACTION_OPT_MUSIC_SEEK_TO)) { //寻找音乐seekTo(intent); //查找音乐}}}

创建MusicData类,该类主要用来获取音乐文件,包括音乐名称及图片等,代码如下:

public class MusicData implements Serializable {private int mMusicRes; //音乐资源idprivate int mMusicPicRes;//专辑图片idprivate String mMusicName; //音乐名称private String mMusicAuthor; //作者/** * 用于其他界面调用 */public MusicData(int mMusicRes, int mMusicPicRes, String mMusicName, String mMusicAuthor) {this.mMusicRes = mMusicRes;this.mMusicPicRes = mMusicPicRes;this.mMusicName = mMusicName;this.mMusicAuthor = mMusicAuthor;}public int getMusicRes() {return mMusicRes;}public int getMusicPicRes() {return mMusicPicRes;}public String getMusicName() {return mMusicName;}public String getMusicAuthor() {return mMusicAuthor;}}

创建DisplayUtil类,用于设置唱片与唱针的比例及宽度与高度,关键代码如下:

public class DisplayUtil {/*手柄起始角度*/public static final float ROTATION_INIT_NEEDLE = -30;/*截图屏幕宽高*/private static final float BASE_SCREEN_WIDTH = (float) 1080.0;private static final float BASE_SCREEN_HEIGHT = (float) 1920.0;/*唱针宽高、距离等比例*/public static final float SCALE_NEEDLE_WIDTH = (float) (276.0 / BASE_SCREEN_WIDTH);public static final float SCALE_NEEDLE_MARGIN_LEFT = (float) (500.0 / BASE_SCREEN_WIDTH);public static final float SCALE_NEEDLE_PIVOT_X = (float) (43.0 / BASE_SCREEN_WIDTH);public static final float SCALE_NEEDLE_PIVOT_Y = (float) (43.0 / BASE_SCREEN_WIDTH);public static final float SCALE_NEEDLE_HEIGHT = (float) (413.0 / BASE_SCREEN_HEIGHT);public static final float SCALE_NEEDLE_MARGIN_TOP = (float) (43.0 / BASE_SCREEN_HEIGHT);/*唱盘比例*/public static final float SCALE_DISC_SIZE = (float) (813.0 / BASE_SCREEN_WIDTH);public static final float SCALE_DISC_MARGIN_TOP = (float) (190 / BASE_SCREEN_HEIGHT);/*专辑图片比例*/public static final float SCALE_MUSIC_PIC_SIZE = (float) (533.0 / BASE_SCREEN_WIDTH);/*设备屏幕宽度*/public static int getScreenWidth(Context context) {return context.getResources().getDisplayMetrics().widthPixels;}/*设备屏幕高度*/public static int getScreenHeight(Context context) {return context.getResources().getDisplayMetrics().heightPixels;}}

制作完成后,看看效果,还不错吧!本实例中唱片背景为透明颜色,若不喜欢,自己可修改唱片背景图片。

若需要完整的源代码,可在此下载:Android 仿网易唱片式音乐播放器

浏览次数:收藏本文打印本文复制本文链接
免责声明:非本网注明原创的信息,皆为程序自动获取自互联网,目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责;如此页面有侵犯到您的权益,请给站长发送邮件,并提供相关证明(版权证明、身份证正反面、侵权链接),站长将在收到邮件24小时内删除。