Pytanie w sprawie android – Jak uzyskać czas trwania przechwyconego wideo na Androida?

3

Używając poniższego kodu przechwyciłem wideo, ale jak uzyskać czas trwania przechwyconego wideo na Androida? a także wtedy, gdy użytkownik odrzuca wideo i nagrywa nowe wideo, a następnie uzyskuje czas trwania nowego wideo.

Intent cameraIntent = new Intent(
android.provider.MediaStore.ACTION_VIDEO_CAPTURE);
startActivityForResult(cameraIntent, TAKE_VIDEO);
@ PadmaKumar nie jest duplikatem, są tylko Kursor, a nie czas trwania Samir Mangroliya
możliwy duplikat:stackoverflow.com/q/3936396/1012284 Padma Kumar

Twoja odpowiedź

2   odpowiedź
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))
    );
Przez uriOfFile masz na myśli dołączoną ścieżkę do plikufile:// prefiks ? Salman Khakwani
Nie twórz instancji MediaPlayer tylko po to, aby uzyskać długość pliku. W tym celu dostępna jest dedykowana klasa MediaMetadataRetriever w systemie Android. Więcej szczegółów można znaleźć w następującej odpowiedzi: stackoverflow.com/a/33247728/1713920 vir us
7

Za pomocą kursora można uzyskać czas trwania i sąduration Kolumna w kursorze i możesz uzyskać ciąg.

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) Powyżej sugeruje się, aby uzyskać czas trwania z nagranego wideo. 2) Ale kiedy próbowałem pobrać czas trwania z galerii, wybrany film rzuca IllegalArgumentException. Harish

Powiązane pytania