录制视频时使用按钮获取以毫秒为单位的系统时间

Get system time in millisecond using Buttons while recording video

我正在使用 camera2apibutton 录制 video 以在录制开始时启动 recording.Now,仅当以下情况时我才需要以毫秒为单位获取系统时间我按下一个特定的按钮(除了开始录制按钮 ).

如果不是系统时间,至少是正在录制视频的录制时间。

只有当我按下特定按钮时,时间才会被存储。我试过使用 system.currentTimeMillis()systemclock.elapsedtime(),但是一旦开始记录然后我按下特定按钮记录时间而不停止记录,它不会存储任何时间细节并显示 0.

下面是我用来存储时间的代码:

case R.id.video: {
            if (mIsRecordingVideo) {
                stopRecordingVideo();
            } else {
                startTSRecordingVideo();
                starttime = System.currentTimeMillis();
                Log.d(TAG, "onClick:time "+starttime);
                switch (view.getId()){
                    case R.id.stop:{
                        stoptime= SystemClock.elapsedRealtime()-starttime;
                        Log.d(TAG, "onClick:timefor slowstop "+stoptime);
                    }
                    break;
                    case R.id.timeshift:{
                        slstarttime=SystemClock.uptimeMillis()-starttime;
                        Log.d(TAG, "onClick:timefor slowstart"+slstarttime);
                    }
                    break;
                }
            }

请告诉我,如何在不影响录制的情况下获取时间。

您放错了 stoptimeshift 按钮事件,它不会被调用。它应该直接在开关盒上。

试试这个。

case R.id.video:
    if (mIsRecordingVideo) {
       stopRecordingVideo();
     } else {
       startTSRecordingVideo();
       starttime = System.currentTimeMillis();
        Log.d(TAG, "onClick:time "+starttime);
     }
     break;
case R.id.stop:
        stoptime= SystemClock.elapsedRealtime()-starttime;
        Log.d(TAG, "onClick:timefor slowstop "+stoptime);        
     break;
case R.id.timeshift:
        slstarttime=SystemClock.uptimeMillis()-starttime;
        Log.d(TAG, "onClick:timefor slowstart"+slstarttime);
     break;