首页 > 解决方案 > 如何在录音时在语音笔记上设置计时器(与 WhatsApp 语音消息录制功能相同)?

问题描述

我正在构建一个具有语音消息功能的聊天应用程序,但是在录制时无法像“WhatsApp”那样获得任何感觉或计时器,所以任何人都可以拥有这个解决方案我尝试了开发人员 Android 的代码,但可以找到这样的解决方案。

btn_voice.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction()==MotionEvent.ACTION_DOWN)
{
 startRecording();
}
else if(event.getAction()==MotionEvent.ACTION_UP)
{
    stopRecording();
}
return false;
}
});

标签: javaandroid

解决方案


创建处理程序

 private Handler customHandler = new Handler();

然后在startRecording(){starttimer();}

然后

 private void starttimer() {
        startTime = SystemClock.uptimeMillis();
        customHandler.postDelayed(updateTimerThread, 0);
    //    customHandler.removeCallbacks(updateTimerThread);

    }

 private Runnable updateTimerThread = new Runnable() {
        @SuppressLint({"SetTextI18n", "DefaultLocale"})
        public void run() {
            timeInMilliseconds = SystemClock.uptimeMillis() - startTime;
            updatedTime = timeSwapBuff + timeInMilliseconds;
            int secs = (int) (updatedTime / 1000);
            int mins = secs / 60;
            secs = secs % 60;
            int milliseconds = (int) (updatedTime % 1000);
            dialTimer.setText("" + mins + ":"+String.format("%02d", secs) + ":"+String.format("%03d", milliseconds));
            customHandler.postDelayed(this, 0);
        }
    };

并停止计时器

customHandler.removeCallbacks(updateTimerThread);

推荐阅读