无法从安卓Q中的Uri加载视频缩略图。

问题描述 投票:-1回答:1

我试过这个代码,但无法得到缩略图了,也试过不同的方法来得到缩略图,我应该为安卓Q改变什么?

  private void getVideoList(){
            if (Build.VERSION.SDK_INT == Build.VERSION_CODES.Q) {
                String[] projection = new String[]{
                        MediaStore.Video.VideoColumns._ID,
                        MediaStore.Video.VideoColumns.DISPLAY_NAME,
                        MediaStore.Video.VideoColumns.DURATION,
                        MediaStore.Video.VideoColumns.SIZE,enter code here
                        MediaStore.Video.VideoColumns.DATA,`enter code here`
                };
                String selection = MediaStore.Video.Media.DURATION + " <= ?";
                String[] selectionArgs = new String[]{
                        String.valueOf(TimeUnit.MILLISECONDS.convert(30, TimeUnit.SECONDS))
                };

                String sortOrder = MediaStore.Video.Media.DATE_ADDED + " ASC";

                try (Cursor cursor = getApplicationContext().getContentResolver().query(
                        MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
                        projection,
                        selection,
                        selectionArgs,
                        sortOrder
                )) {





                    }
                }

            }
        }
android android-external-storage android-10.0
1个回答
0
投票

使用这个方法来获取视频缩略图。

public static Bitmap getThumbVideo(Context context, Uri videoUri){
    Bitmap bitmap = null;
    MediaMetadataRetriever mediaMetadataRetriever = null;
    try {
        mediaMetadataRetriever = new MediaMetadataRetriever();
        mediaMetadataRetriever.setDataSource(context, videoUri);
        bitmap = mediaMetadataRetriever.getFrameAtTime(1000, MediaMetadataRetriever.OPTION_CLOSEST_SYNC);
    } catch ( Exception e) {
        e.printStackTrace();
    } finally {
        if (mediaMetadataRetriever != null) {
            mediaMetadataRetriever.release();
        }
    }
    return bitmap;
}

它适用于当前所有版本的Android。

© www.soinside.com 2019 - 2024. All rights reserved.