Извлечение продолжительности видеофайла 3GP в Java/Android

Я абсолютно новичок в разработке Android и пытаюсь создать небольшой видеоплеер, который может записывать видео и просматривать записанные видео. Я просматриваю список видео, записанных приложением, в ListView, где для каждого видео я показываю название и длину видео.

Я получаю список видео, используя:

File[] fileList = directory.listFiles(filter); 

Мне удалось получить название видео, используя следующее:

fileList[i].getName()

Но я не могу понять, как извлечь длину/продолжительность видео. Я не смог найти какие-либо соответствующие API, которые также делают это.

Как я могу получить продолжительность видеофайла 3GP в Java?


person Ashin Mandal    schedule 23.04.2012    source источник


Ответы (1)


вы можете использовать курсор вот так...

 String[] proj = {
            MediaStore.Video.Media._ID,
            MediaStore.Video.Media.DATA,
            MediaStore.Video.Media.DISPLAY_NAME,
            MediaStore.Video.Media.SIZE,
            MediaStore.Video.Media.DATE_TAKEN,
            MediaStore.Video.Media.DURATION };

            videocursor = managedQuery(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,proj, null, null, null);

вы можете получить продолжительность видеофайла, используя MediaStore.Video.Media.DURATION.

Надеюсь, это поможет вам.

person N.Droid    schedule 23.04.2012
comment
Итак, должен ли я вообще не использовать File[] и вместо этого использовать Cursor? 'managedQuery(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,proj,null,null,null);' Извлекает ли этот метод все видео с SD-карты? Я хочу, чтобы все видео были только из определенного каталога на SD-карте. - person Ashin Mandal; 23.04.2012
comment
Просто чтобы все знали, что продолжительность указана в миллисекундах. - person Ashin Mandal; 24.04.2012
comment
Привет, я использую тот же код, но я получаю продолжительность 0 каждый раз после записи видео. Это потому, что я недавно записал видео, и данные о его содержании недоступны? Пожалуйста, помогите мне, если у кого-то есть решение для той же проблемы. - person chikka.anddev; 21.05.2012
comment
как использовать его с fileList[i]? - person NickUnuchek; 27.08.2015