Android应用--简、美音乐播放器添加电话监听

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行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

资料⬅专栏获取

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/734560.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Pikachu靶场--越权漏洞

参考借鉴 pikachu之越权漏洞_pikachu越权漏洞-CSDN博客 水平越权 需要输入username和password进行登录 查看提示,获取username和password 输入其中一组账号信息进行登录 可以查看到个人信息 在URL中更改username的值-->回车 成功越权,登录到其他账号…

2024-06-23 编译原理实验4——中间代码生成

文章目录 一、实验要求二、实验设计三、实验结果四、附完整代码 补录与分享本科实验,以示纪念。 一、实验要求 在词法分析、语法分析和语义分析程序的基础上,将C−−源代码翻译为中间代码。 要求将中间代码输出成线性结构(三地址代码&#…

CTFHUB-SSRF-POST请求

通过file协议访问flag.php文件内容 ?urlfile:///var/www/html/flag.php 右键查看页面源代码 需要从内部携带key发送post数据包即可获得flag ?urlhttp://127.0.0.1/flag.php 得到了key 构造POST请求数据包,进行url编码(新建一个txt文件,…

【vue3|第12期】Vue3的Props详解:组件通信

日期:2024年6月19日 作者:Commas 签名:(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释:如果您觉得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方&#xf…

微服务——重复消费(幂等解决方案)

目录 一、唯一ID机制二、幂等性设计三、状态检查机制四、利用缓存和消息队列五、分布式锁总结 在微服务中,防止重复消费的核心思想是通过设计使得操作一次与多次产生相同的效果,并为每次操作生成唯一的ID。这样,即使在消息被重复发送的情况下…

Stable Diffusion 插件安装与推荐,助力你的AI绘图

在上一篇文章我们安装了Stable Diffusion ,这篇文章我们来安装Stable Diffusion的插件 Stable Diffusion的插件是绘画中重要的一环,好的插件可以让你的绘画更加得心应手 中英双语插件 为什么要安装中英双语插件呢,不能只安装中文插件吗&…

计算机组成原理 | 数据的表示、运算和校验(1)数值型数据

有了一个二进制代码,首先要知道他是带符号的还是不带符号的,接着要知道他是原码还是补码还是反码,最终才能确定他的真值。 补码和移码:符号相反、数值位相同 表示范围不理解 数的定点表示法 对于反码而言:10000000表示…

Android蓝牙开发(一)之打开蓝牙和设备搜索

private BluetoothManager bluetoothmanger; private​ BluetoothAdapter bluetoothadapter; /** 判断设备是否支持蓝牙 */ bluetoothmanger (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE); bluetoothadapter bluetoothmanger.getAdapter(); if (bl…

46、基于自组织映射神经网络的鸢尾花聚类(matlab)

1、自组织映射神经网络的鸢尾花聚类的原理及流程 自组织映射神经网络(Self-Organizing Map, SOM)是一种用于聚类和数据可视化的人工神经网络模型。在鸢尾花聚类中,SOM 可以用来将鸢尾花数据集分成不同的类别,同时保留数据间的拓扑…

MyBatisPlus中的selectById方法

今天在编代码时用selectById方法时,不小心写错了,参数传了个实体类。本来应该传id的。 但是没报错,于是进入源码看了一下。 这是源码 里面的参数是一个序列化类型的。 后面发现我的实体类实现了这个接口所以能才能传进去。不实现就传不了 我…

SSL/TLS握手

文章目录 SSL/TLSTLS历史发展层次结构SSL/TLS握手协议TLS1.2 Vs TLS1.3 安全通信协议是一类用于保护计算机网络上数据传输安全的协议。这些协议通过加密、身份验证和数据完整性机制来防止数据被窃听、篡改或伪造。以下是一些主要的安全通信协议:SSL/TLS, IPsec, SSH…

idea配置本地maven

软件名地址链接说明MavenMaven – Download Apache Maven依赖管理 下载bin.zip 环境变量 测试安装 修改配置文件 本地依赖存储位置 新建文件夹 修改配置 国内镜像源 <mirror><id>alimaven</id><mirrorOf>central</mirrorOf><name>ali…

大电流一体成型电感CSEB1350系列,助力实现DC-DC转换器小尺寸、高效率

DC-DC转换器 , 转换器 , 科达嘉 DC-DC转换器作为一种电压转换装置&#xff0c;在电子产品、电源系统、工业控制、新能源等领域广泛应用。。。 DC-DC转换器作为一种电压转换装置&#xff0c;在电子产品、电源系统、工业控制、新能源等领域广泛应用。随着各行业用户对DC-DC转换器…

pytorch神经网络训练(VGG-16)

VGG-16 导包 import torchimport torch.nn as nnimport torch.optim as optimimport torchvisionfrom torchvision import datasets, transformsfrom torch.utils.data import DataLoaderimport matplotlib.pyplot as plt 数据预处理和增强 transform transforms.Compose(…

Flutter-实现头像叠加动画效果

实现头像叠加动画效果 在这篇文章中&#xff0c;我们将介绍如何使用 Flutter 实现一个带有透明度渐变效果和过渡动画的头像叠加列表。通过这种效果&#xff0c;可以在图片切换时实现平滑的动画&#xff0c;使 UI 更加生动和吸引人。 需求 我们的目标是实现一个头像叠加列表&…

基于顺序存储的环形队列算法库构建

学习贺利坚老师基于数组的环形队列 数据结构之自建算法库——顺序环形队列_下空队列q中依次入队列数据元素abc-CSDN博客文章浏览阅读5.2k次&#xff0c;点赞6次&#xff0c;收藏6次。本文针对数据结构基础系列网络课程(3)&#xff1a;栈和队列中第9课时环形队列的存储及基本操…

基于ESP8266串口WIFI模块ESP-01S在Station模式(即接收无线信号( WiFi))下实现STC单片机与手机端网路串口助手相互通信功能

基于ESP8266串口WIFI模块ESP-01S在Station模式(即接收无线信号( WiFi))下实现STC单片机与手机端网路串口助手相互通信功能 ESP8266_01S引脚功能图ESP8266_01S原理图ESP8266_01S尺寸图检验工作1、USB-TTL串口工具(推荐使用搭载CP2102芯片的安信可USB-T1串口)与ESP8266_01S…

会声会影2024永久破解和谐版下载 包含激活码序列号

亲爱的创作伙伴们&#xff0c;今天我要分享一个让我的影视编辑生活大放异彩的神器——会声会影2024破解版本&#xff01;&#x1f389;&#x1f31f; &#x1f308;**功能全面升级**&#xff1a;作为一款专业的视频编辑软件&#xff0c;会声会影2024破解版本不仅继承了之前版本…

KEITHLEY吉时利24611kW 脈沖模式 SourceMeter 手侧

KEITHLEY吉时利24611kW 脈沖模式 SourceMeter 手侧

【vue3|第13期】深入了解Vue3生命周期:管理组件的诞生、成长与消亡

日期&#xff1a;2024年6月22日 作者&#xff1a;Commas 签名&#xff1a;(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释&#xff1a;如果您觉得有所帮助&#xff0c;帮忙点个赞&#xff0c;也可以关注我&#xff0c;我们一起成长&#xff1b;如果有不对的地方&#xf…