我希望获得当前的视频时长。我正在使用ExoPlayer(Exoplayer用于播放视频,它是一个视频播放器),我想显示当前的视频播放持续时间。方法getCurrentDuration()用于获取视频的当前持续时间,因此我想在日志中获取该持续时间。这就是为什么我这样编码,但它没有提供正确的持续时间。我希望在播放视频时,搜索栏上显示的当前持续时间也应显示在日志中。
for (long x=0;x<10000000;x++){
long position = mPlayer.getCurrentPosition();
Log.d(">>>>AdPopUp", Long.toString(position));
答案 0 :(得分:0)
有一种方法:
private PlayerView videoView;
Log.i("video_duration",
((TextView)videoView.findViewById(R.id.exo_duration)).getText().toString());
请记住不要立即调用它。它将返回00:00,而不是在具有postDelayed(Runnable,long millisec)的处理程序中使用它,如下所示:
videoView.postDelayed(new Runnable() {
@Override
public void run() {
Log.i("video_duration",
((TextView)videoView.findViewById(R.id.exo_duration)).getText().toString());
}
}, 2000);
但是,您可以使用MediaMetadataRetriever:
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
try {
retriever.setDataSource(mContext, Uri.fromFile(file));
String time = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);
} catch (Exception ignored) {
} finally {
retriever.release();
}