3. 控制音量
4. 获取专辑图片
5. 在线下载歌词
6. 在线搜索音乐
7. 在线下载音乐
8. 实现有趣功能–甩歌
9. 界面美化–实现专辑倒影
10.实现左右界面切换
11.实现在通知栏显示播放状态
12.实现音乐播放的桌面小控件
暂时想到这些功能,如果朋友们有什么建议的话,可以直接给我留言。
在贴电话状态监听功能代码之前,把AppConstant这个类也贴一下,这个只是用来存放播放控制信息的,有网友说要看看,所以在这里贴一下吧。
package com.wwj.sb.domain;
/**
-
应用常量类
-
@author wwj
*/
public class AppConstant {
public class PlayerMsg {
public static final int PLAY_MSG = 1; //播放
public static final int PAUSE_MSG = 2; //暂停
public static final int STOP_MSG = 3; //停止
public static final int CONTINUE_MSG = 4; //继续
public static final int PRIVIOUS_MSG = 5; //上一首
public static final int NEXT_MSG = 6; //下一首
public static final int PROGRESS_CHANGE = 7;//进度改变
public static final int PLAYING_MSG = 8; //正在播放
}
}
那好,继续完善小巫的简、美音乐播放器,因为一个好的应用软件应该考虑到各种情况,
就那音乐播放器来说,如果播放音乐过程中,来了一个电话,可能是“永远不会打电话给你的人”,如果这时候你的音乐还在后台悠哉的播放,我想你会疯掉的,永远不会打电话给你的人可能真的永远不打了。这里只是开个玩笑,所以呢,要考虑到这种情况,只要来电了,那么播放器应该能暂停一下,好让你好好打个电话。下面的实现很简单,不多解释,直接上代码:
1、添加权限
2. 获取TelephonyManager对象,调用listen方法监听来电状态
// 添加来电监听事件
TelephonyManager telManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); // 获取系统服务
telManager.listen(new MobliePhoneStateListener(),
PhoneStateListener.LISTEN_CALL_STATE);
3.实现监听类
/**
-
@author wwj
-
电话监听器类
*/
private class MobliePhoneStateListener extends PhoneStateListener {
@Override
public void onCallStateChanged(int state, String incomingNumber) {
switch (state) {
case TelephonyManager.CALL_STATE_IDLE: // 挂机状态
Intent intent = new Intent(PlayerActivity.this, PlayerService.class);
playBtn.setBackgroundResource(R.drawable.play_selector);
intent.setAction(“com.wwj.media.MUSIC_SERVICE”);
intent.putExtra(“MSG”, AppConstant.PlayerMsg.CONTINUE_MSG); //继续播放音乐
startService(intent);
isPlaying = false;
isPause = true;
break;
case TelephonyManager.CALL_STATE_OFFHOOK: //通话状态
case TelephonyManager.CALL_STATE_RINGING: //响铃状态
Intent intent2 = new Intent(PlayerActivity.this, PlayerService.class);
playBtn.setBackgroundResource(R.drawable.pause_selector);
intent2.setAction(“com.wwj.media.MUSIC_SERVICE”);
intent2.putExtra(“MSG”, AppConstant.PlayerMsg.PAUSE_MSG);
startService(intent2);
isPlaying = true;
isPause = false;
break;
default:
break;
}
}
}
最后
小编这些年深知大多数初中级Android工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
资料⬅专栏获取
因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。**
[外链图片转存中…(img-480KCHDN-1719083324074)]一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
资料⬅专栏获取