如何在Android中获取捕获视频的持续时间?

MAC*_*MAC 4 android

使用下面的代码我捕获视频,但如何在Android中获取捕获的视频的持续时间?并且当有时用户丢弃视频并录制新视频时,则获得新视频的持续时间.

Intent cameraIntent = new Intent(
android.provider.MediaStore.ACTION_VIDEO_CAPTURE);
startActivityForResult(cameraIntent, TAKE_VIDEO);
Run Code Online (Sandbox Code Playgroud)

Sam*_*iya 8

使用游标你可以获得持续时间,并且duration在光标中有列,你可以得到一个字符串.

Cursor cursor = MediaStore.Video.query(getContentResolver(),data.getData(),
                new String[] { MediaStore.Video.VideoColumns.DURATION });
System.out.println(">>>>>>>>>>"+cursor.getCount());
cursor.moveToFirst();

String duration = cursor.getString(cursor.getColumnIndex("duration"));
Run Code Online (Sandbox Code Playgroud)

  • 1)以上建议用于从录制的视频中获取持续时间。2)但是当我试图从画廊选择的视频中检索持续时间时,它抛出了 IllegalArgumentException。 (2认同)

Nol*_*esh 7

我认为最简单的方法是:

MediaPlayer mp = MediaPlayer.create(this, Uri.parse(uriOfFile);
int duration = mp.getDuration();
mp.release();
/*convert millis to appropriate time*/
return String.format("%d min, %d sec", 
        TimeUnit.MILLISECONDS.toMinutes(duration),
        TimeUnit.MILLISECONDS.toSeconds(duration) - 
        TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(duration))
    );
Run Code Online (Sandbox Code Playgroud)