如何在录制Android时获取视频的持续时间
我面临一个问题。我想在录制视频时获得视频的持续时间。 我可以得到视频的持续时间,当它的代码完成如何在录制Android时获取视频的持续时间,android,video,record,duration,Android,Video,Record,Duration,我面临一个问题。我想在录制视频时获得视频的持续时间。 我可以得到视频的持续时间,当它的代码完成 MediaPlayer mp = MediaPlayer.create(mContext, Uri.parse(video)); if(mp == null) return -1; int duration = mp.getDuration(); mp.release(); 但我希望每次录制视频更新到progressbar时都能获得持续时间。 希望你的答复 private class
MediaPlayer mp = MediaPlayer.create(mContext, Uri.parse(video));
if(mp == null)
return -1;
int duration = mp.getDuration();
mp.release();
但我希望每次录制视频更新到progressbar时都能获得持续时间。
希望你的答复
private class PlaybackObserver extends Thread {
public void run() {
currentPosition = 0;
try {
while (!killObserverThread) {
Thread.sleep(1000);
currentPosition = (int) mediaPlayer.getCurrentPosition();
runOnUiThread(new Runnable() {
public void run() {
yourProgressBar.setProgress(currentPosition);
}
});
}
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
@Override
protected void onDestroy() {
super.onDestroy();
killObserverThread = false;
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
if (task == null || !task.isAlive()) {
task = new PlaybackObserver();
task.start();
}
startPlaying();
}
为UiThread添加私有类以更新seekbar/progressbar。然后从onResume()开始操作。谢谢您的回答。但我不明白你的解决办法。因为。我正在录制新的MediaRecorder()。我建立并开始这张唱片。在录制过程中,我无法为此文件创建mediaplayer。它总是返回空值。当文件记录完成时,将创建媒体文件!所以当记录运行时,我无法获取持续时间!