【问题标题】:Extracting the duration of a 3GP video file in Java/ Android在 Java/Android 中提取 3GP 视频文件的时长
【发布时间】:2012-05-03 23:25:48
【问题描述】:

我是 Android 开发的新手,我正在尝试创建一个可以录制视频和查看录制视频的小型视频播放器。我正在 ListView 中查看应用程序录制的视频列表,其中为每个视频显示视频的标题和长度。

我使用以下方法获取视频列表:

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

我已经能够使用以下方法获取视频的名称:

fileList[i].getName()

但我似乎无法弄清楚如何提取视频的长度/持续时间。我也找不到任何相关的 API。

如何在 Java 中获取 3GP 视频文件的时长?

【问题讨论】:

    标签: java android video 3gp


    【解决方案1】:

    你可以像这样使用Cursor ...

     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 获取视频文件时长。

    希望对你有所帮助。

    【讨论】:

    • 那么,我应该根本不使用 File[] 而是使用 Cursor 吗? 'managedQuery(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,proj,null,null,null);'此方法是否获取 SD 卡中的所有视频?我只想要 SD 卡中特定目录中的所有视频。
    • 只是为了让大家知道持续时间是以毫秒为单位的。
    • 您好,我使用的是相同的代码,但是每次录制视频后我的持续时间都为 0。是因为我最近录制了视频并且它的内容数据不可用吗?如果有人有请帮助我相同问题的解决方案。
    • 如何与fileList[i]一起使用?
    猜你喜欢
    • 2012-11-04
    • 2021-02-11
    • 2013-11-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-16
    • 2015-05-30
    • 2014-11-02
    相关资源
    最近更新 更多