录音时间、简易计时器、显示录音时间

    在通音过程中,在Android源码中如果开启录音功能,则在录音过程没有录音时间的显示:

如果在通话界面添加录音时间是的显示,可以在phone的InCallScreen.java中加入如下代码:

 

oncreate() 中加入:

    timer = new Timer();

 

在onRecorderClick方法中加入:

	if(timer !=null){
            		if(task !=null){
            			task.cancel();     //
            			Log.e("test","task" + task);
            		}
            		
            		task = new MyTimerTask();  // 新建一个任务      
                	timer.schedule(task, 1000, 1000);       // timeTask 
            		
            	}


添加方法:

class MyTimerTask extends TimerTask {
		@Override
		public void run() {

			runOnUiThread(new Runnable() { // UI thread
				@Override
				public void run() {
					recLen++;
//					txtView.setText("" + recLen);
					
					if(recLen == 9){
						recLen2 ++;
						recLen = 0;

					}
					
					if(recLen2 == 5){
						mMinute ++;
						recLen2 = 0;
					}
					
					if(mMinute == 9){
						mMinute2 ++;
						mMinute = 0;
					}
					
					if(mMinute2 == 5){
						mhour ++;
						mMinute2 = 0;
					}
					
					if(mhour == 9){
						mhour2 ++;
						mhour = 0;
					}
					
					if(1<=mhour && mhour <=9 &&  mhour2 <=2){
						mRecordingTime.setText(getResources().getString(R.string.recordtime) + mhour2 + mhour +":"+mMinute2+mMinute +":" + recLen2 +recLen ); 
					}else{
						mRecordingTime.setText(getResources().getString(R.string.recordtime) + mMinute2+mMinute +":" + recLen2 +recLen ); 
					}
					
					
					if (!mflag) {
						task.cancel();
						Log.e("test","task.task.cancel==="+task.toString());
						mRecordingTime.setText("");
						recLen = 0;
						mMinute = 0;
						mhour = 0;
						mRecordingTime.setVisibility(View.GONE);
					}
				}

			});
		}
	}; 


 

如果以上代码看不太明白,请查看:http://blog.csdn.net/wangqilin8888/article/details/7415601

 

 

 

 PS:后来发现在InCallScreen.java中有个小Bug就是,如果在通话过程中,按“等待”与“恢复”键,会出现录音时间记录混乱的情况,所以在“等待”按键时,要进行mflag = true;致使下次显示:00:00

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值