我想获取视频的当前持续时间。我正在使用ExoPlayer(Exoplayer用于播放视频,它是一个视频播放器(,我想显示当前的视频播放持续时间。方法getCurrentDuration((用于获取视频的当前持续时间,因此我想在日志中获取该持续时间。这就是为什么我像这样编码,但它没有提供正确的持续时间。我希望在播放视频时,搜索栏上显示的当前持续时间也应该显示在日志中。
for (long x=0;x<10000000;x++){
long position = mPlayer.getCurrentPosition();
Log.d(">>>>AdPopUp", Long.toString(position));
有一种方法:
private PlayerView videoView;
Log.i("video_duration",
((TextView)videoView.findViewById(R.id.exo_duration)).getText().toString());
切记不要立即打电话。它将返回 00:00,而不是在具有 postDelayed(可运行,长毫秒(的处理程序中使用它,如下所示:
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();
}