代码之家  ›  专栏  ›  技术社区  ›  Sushin Pv

如何使用MediaStore获取特定持续时间(或小于该持续时间)的视频路径

  •  1
  • Sushin Pv  · 技术社区  · 8 年前

    这些是我获取视频路径的代码

    public void getVideoPaths(Context context) {
        Uri uri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
        String[] projection = {MediaStore.Video.VideoColumns.DATA};
        Cursor c = context.getContentResolver().query(uri, projection, null, null, null);
        if (c != null) {
            while (c.moveToNext()) {
                filesNames.add(c.getString(0));
            }
            c.close();
        }
    }
    
    2 回复  |  直到 8 年前
        1
  •  3
  •   Gabe Sechan    8 年前
    String duration = Integer.toString(15*60*1000);
    Cursor c = context.getContentResolver().query(uri, projection, MediaStore.Video.VideoColumns.DURATION + " < ?", new String[] {duration}, null);
    

    这将只查询小于15分钟的文件

        2
  •  0
  •   Abdul Waheed    8 年前

    MediaPlayer mp = MediaPlayer.create(this, Uri.parse(uriOfYourFile));
    int duration = mp.getDuration();
    

    然后检查具体的持续时间。您可以使用下面提到的另一个选项

    MediaMetadataRetriever retriever = new MediaMetadataRetriever();
    //use one of overloaded setDataSource() functions to set your data source
    retriever.setDataSource(context, Uri.fromFile(videoFile));
    String time = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);
    long timeInMillisec = Long.parseLong(time );
    
    retriever.release()
    

    推荐文章