Frage an android – Wie bekomme ich die Dauer des aufgenommenen Videos in Android?

3

Unter Verwendung des folgenden Codes habe ich Video aufgenommen, aber wie bekomme ich die Dauer des aufgenommenen Videos in Android? und auch wenn der Benutzer manchmal Videos verwirft und neue Videos aufzeichnet, erhält er die Dauer der neuen Videos.

Intent cameraIntent = new Intent(
android.provider.MediaStore.ACTION_VIDEO_CAPTURE);
startActivityForResult(cameraIntent, TAKE_VIDEO);
möglich Duplizieren:stackoverflow.com/q/3936396/1012284 Padma Kumar
@PadmaKumar es ist kein Duplikat, es gibt nur Cursor und auch keine Dauer Samir Mangroliya

Deine Antwort

2   die antwort
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))
    );
Bitte erstellen Sie keine MediaPlayer-Instanz, nur um die Dateilänge zu ermitteln. Dafür gibt es in Android eine eigene MediaMetadataRetriever-Klasse. Weitere Informationen finden Sie in der folgenden Antwort: stackoverflow.com/a/33247728/1713920 vir us
Mit uriOfFile meinen Sie den Dateipfad, an den angehängt wurdefile:// Präfix ? Salman Khakwani
7

Mit dem Cursor können Sie die Dauer erhalten und es gibtduration Spalte in Cursor und Sie können als Zeichenfolge abrufen.

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"));
1) Oben wird empfohlen, um die Dauer der Videoaufnahme zu ermitteln. 2) Aber als ich versuchte, die Dauer aus dem in der Galerie ausgewählten Video abzurufen, löste es eine IllegalArgumentException aus. Harish

Verwandte Fragen