gpt4 book ai didi

android - 有没有办法获得持续录制的持续时间

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:02:04 26 4
gpt4 key购买 nike

我正在尝试录制视频并希望显示正在进行的录制的秒数。

我应该怎么做?

public void startRecording(View v) {

    flipCamera.setVisibility(View.GONE);
captureImage.setVisibility(View.GONE);
String deviceMan = android.os.Build.MANUFACTURER;
this.mediaRecorder = new MediaRecorder();
this.mediaRecorder.setCamera(this.camera);

camera.unlock();
this.mediaRecorder.setCamera(camera);
this.mediaRecorder.setOrientationHint(90);

this.mediaRecorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
this.mediaRecorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
CamcorderProfile camcorderProfile_HQ = CamcorderProfile
.get(CamcorderProfile.QUALITY_480P);
this.mediaRecorder.setProfile(camcorderProfile_HQ);
this.mediaRecorder.setOutputFile(this.initFile().getAbsolutePath());
this.mediaRecorder.setMaxDuration(60000); // Set max duration 60 sec.
this.mediaRecorder.setMaxFileSize(5000000);
this.mediaRecorder.setPreviewDisplay(this.cameraPreview.getHolder()
.getSurface());

this.mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP);

try {
this.mediaRecorder.prepare();
// start the actual recording
// throws IllegalStateException if not prepared
this.mediaRecorder.start();
Toast.makeText(this, R.string.recording, Toast.LENGTH_SHORT).show();

this.toggleButtons(true);

} catch (Exception e) {
Log.wtf(TAG, "Failed to prepare MediaRecorder", e);
Toast.makeText(this, R.string.cannot_record, Toast.LENGTH_SHORT)
.show();
this.releaseMediaRecorder();
}
}

我是 android 的新手,如果有人能提供帮助,请多多指教。

最佳答案

您可以使用计时器和处理程序来实现它。在下面的示例中, TextView 用于以 00 分钟:00 秒的格式显示持续时间。我在后台服务中使用它,但您也可以在 Activity 中使用它。

public TextView timerTextView;
private long startHTime = 0L;
private Handler customHandler = new Handler();
long timeInMilliseconds = 0L;
long timeSwapBuff = 0L;
long updatedTime = 0L;


private Runnable updateTimerThread = new Runnable() {

public void run() {

timeInMilliseconds = SystemClock.uptimeMillis() - startHTime;

updatedTime = timeSwapBuff + timeInMilliseconds;

int secs = (int) (updatedTime / 1000);
int mins = secs / 60;
secs = secs % 60;
if (timerTextView != null)
timerTextView.setText("" + String.format("%02d", mins) + ":"
+ String.format("%02d", secs));
customHandler.postDelayed(this, 0);
}

};

从哪里开始录制:

      ......
this.mediaRecorder.start()
startHTime = SystemClock.uptimeMillis();
customHandler.postDelayed(updateTimerThread, 0);

停止录音的地方:

     mediaRecorder.stop()
timeSwapBuff += timeInMilliseconds;
customHandler.removeCallbacks(updateTimerThread);

关于android - 有没有办法获得持续录制的持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24217536/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com