监听手机录音
来源:互联网 发布:网络语狗血是什么意思 编辑:程序博客网 时间:2024/05/01 12:24
需求分析:
停止录音:
清单文件的配置信息:
记录通话过程中的录音,并保存到指定路径~
知识点:1.手机开机发出广播,广播接受者收到通知,开启service服务
2.Service工作流程:
1.获取手机管理对象·
2.注册监听器,相应手机状态
3.根据手机状态(振铃、通话、空闲),创建Mediaplay对象,暂停
这里监听手机状态,添加权限
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
代码:
TelephonyManager manager=(TelephonyManager) getSystemService(TELEPHONY_SERVICE);//获取电话管理
manager.listen(new MyPhoneStateListener(), PhoneStateListener.LISTEN_CALL_STATE);
//用电话管理器注册一个监听器,监听电话状态
注意:手机状态监听这,可以监听多个状态,LISTEN_CALL_STATE监听的是手机状态的变化,以下该监听器其他的监听对象
手机状态改变的state三种值:空闲、通话、挂断
根据三种状态,处理Mediaplayer,代码
public void onCallStateChanged(int state, String incomingNumber) {// 电话状态改变时执行该方法
switch (state) {
case TelephonyManager.CALL_STATE_RINGING:
Log.d("Debug","振铃");
num = incomingNumber;// 振铃时, 记录号码
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
Log.d("Debug","开始录音");
startRecording();// 摘机时, 开始录音
break;
case TelephonyManager.CALL_STATE_IDLE:
Log.d("Debug","空闲状态");
stopRecording();// 空闲时, 结束录音
break;
}
}
思考:如果手机没有振铃?
停止录音:
private void stopRecording() {
if (mRecorder != null) {
mRecorder.stop();// 停止
mRecorder.release(); // 释放资源
mRecorder = null;// 垃圾回收
}
}
开始录音:
private void startRecording() {
try {
Log.d("Debug", "startRecording");
mRecorder = new MediaRecorder(); // 创建媒体记录器
mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);// 设置音频源
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);// 设置输出格式
mRecorder.setOutputFile("/mnt/sdcard/" + num + "_" + System.currentTimeMillis() + ".3gp"); // 设置输出文件路径
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);// 设置编码
mRecorder.prepare();// 准备
mRecorder.start();// 开始
} catch (Exception e) {
e.printStackTrace();
} }}}
总结:MediaPlayer操作过程,停止和录音过程~,这里使用到了sdcard所以,必须声明权限。
<uses-permission android:name="android.permission.RECORD_AUDIO"/>//允许程序进行录音
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> //写入存储卡
清单文件的配置信息:
<receiver android:name=".PhoneBroacast">
<intent-filter >
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
<service android:name=".PhoneService">
</service>
- 监听手机录音
- 来电监听及录音
- android录音监听
- Android Service 手机启动服务 监听电话的状态 进行录音
- angularjs+ngCordova 手机录音
- 监听用户电话(录音)
- MediaRecorder实现手机录音功能
- (综合)iPhone手机录音-amr
- Android手机通话录音实现
- Unity实现手机录音功能
- 摇一摇手机控制手机录音功能
- android服务Service----实现电话监听录音
- Android服务Service----实现电话监听录音
- android服务Service----实现电话监听录音
- 电话黑名单、来电进行监听录音
- 实时录音监听 navigator.mediaDevices.getUserMedia()
- App监听短信广播和电话监听录音
- 监听手机状态--PhoneStateListener
- Ubuntu samba配置的安装:
- COCOS2DX-1.0.1 配置手册
- 用Python实现栈
- Java--关于 i++ 与 ++i
- Extjs+iFrame+百度编辑器
- 监听手机录音
- 我的SQL数据库分页
- php htmlentities和htmlspecialchars 的区别
- 【录音稿】导入创业精神--专治大公司病——Scrum敏捷游戏开发
- PHP File
- 过程中的点点滴滴【学习疑问】
- extjs+iframe
- 同人游戏开发手记(一)
- 生活机器人 live tiny-作者:逝秋