android 电话录音功能,Android实现电话录音功能

/*** Created by Easzz on 2015/12/6.*/

public class RecorderService extendsService {private MediaRecorder recorder; //录音的一个实例

@OverridepublicIBinder onBind(Intent intent) {return null;

}

@Overridepublic voidonCreate() {super.onCreate();//获得电话管理器

TelephonyManager tm=(TelephonyManager) getSystemService(TELEPHONY_SERVICE);//启动监听.传入一个listener和监听的事件,

tm.listen(newMyListener(),PhoneStateListener.LISTEN_CALL_STATE);

}class MyListener extendsPhoneStateListener{//在电话状态改变的时候调用

@Overridepublic void onCallStateChanged(intstate, String incomingNumber) {super.onCallStateChanged(state, incomingNumber);switch(state){caseTelephonyManager.CALL_STATE_IDLE://空闲状态

if (recorder!=null){

recorder.stop();//停止录音

recorder.release();//释放资源

recorder=null;

}break;caseTelephonyManager.CALL_STATE_RINGING://响铃状态 需要在响铃状态的时候初始化录音服务

if (recorder==null){

recorder=new MediaRecorder();//初始化录音对象

recorder.setAudioSource(MediaRecorder.AudioSource.MIC);//设置录音的输入源(麦克)

recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);//设置音频格式(3gp)

createRecorderFile();//创建保存录音的文件夹

recorder.setOutputFile("sdcard/recorder" + "/" + getCurrentTime() + ".3gp"); //设置录音保存的文件

recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);//设置音频编码

try{

recorder.prepare();//准备录音

} catch(IOException e) {

e.printStackTrace();

}

}break;caseTelephonyManager.CALL_STATE_OFFHOOK://摘机状态(接听)

if (recorder!=null){

recorder.start();//接听的时候开始录音

}break;

}

}//创建保存录音的目录

private voidcreateRecorderFile() {

String absolutePath=Environment.getExternalStorageDirectory().getAbsolutePath();

String filePath=absolutePath+"/recorder";

File file=newFile(filePath);if (!file.exists()){

file.mkdir();

}

}//获取当前时间,以其为名来保存录音

privateString getCurrentTime(){

SimpleDateFormat format=new SimpleDateFormat("yyyyMMddHHmmss");

Date date=newDate();

String str=format.format(date);returnstr;

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值