|
|
@@ -2,8 +2,11 @@ package cn.finalteam.rxgalleryfinal.utils;
|
|
|
|
|
|
import android.content.ContentResolver;
|
|
|
import android.content.Context;
|
|
|
+import android.content.Intent;
|
|
|
import android.database.Cursor;
|
|
|
+import android.graphics.Bitmap;
|
|
|
import android.graphics.BitmapFactory;
|
|
|
+import android.graphics.Matrix;
|
|
|
import android.media.ExifInterface;
|
|
|
import android.media.MediaMetadataRetriever;
|
|
|
import android.net.Uri;
|
|
|
@@ -137,17 +140,18 @@ public class MediaUtils {
|
|
|
mediaBeanList.add(item);
|
|
|
//检查并重新设置宽高
|
|
|
if (item != null && item.getOriginalPath() != null) {
|
|
|
- if (item.getHeight() <= 0 || item.getWidth() <= 0) {
|
|
|
+ if (item.getHeight() <= 0 || item.getWidth() <= 0 || item.getOrientation() == -1) {
|
|
|
try {
|
|
|
-
|
|
|
- MediaMetadataRetriever metadataRetriever = new MediaMetadataRetriever();
|
|
|
- metadataRetriever.setDataSource(context, Uri.parse(item.getOriginalPath()));
|
|
|
- String width = metadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH); // 视频宽度
|
|
|
- String height = metadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT); // 视频高度
|
|
|
-// String rotation = metadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_ROTATION); // 视频旋转方向
|
|
|
-
|
|
|
- item.setWidth(Float.valueOf(width).intValue());
|
|
|
- item.setHeight(Float.valueOf(height).intValue());
|
|
|
+ MediaMetadataRetriever metadataRetriever = new MediaMetadataRetriever();
|
|
|
+ metadataRetriever.setDataSource(context, Uri.parse(item.getOriginalPath()));
|
|
|
+ String width = metadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH); // 视频宽度
|
|
|
+ String height = metadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT); // 视频高度
|
|
|
+ String rotation = metadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_ROTATION); // 视频旋转方向
|
|
|
+
|
|
|
+ item.setWidth(Float.valueOf(width).intValue());
|
|
|
+ item.setHeight(Float.valueOf(height).intValue());
|
|
|
+ item.setOrientation(Float.valueOf(rotation).intValue());
|
|
|
+ LogUtil.println("getMediaWithVideoList", width, height, rotation);
|
|
|
} catch (Exception e){
|
|
|
LogUtil.println("getMediaWithVideoList", e.getMessage());
|
|
|
}
|
|
|
@@ -478,4 +482,11 @@ public class MediaUtils {
|
|
|
BitmapFactory.decodeFile(filePath, options); // 此时返回的bitmap为null
|
|
|
return options;
|
|
|
}
|
|
|
+ //旋转bitmap
|
|
|
+ public static Bitmap rotateBimap(float degree, Bitmap srcBitmap) {
|
|
|
+ Matrix matrix = new Matrix();
|
|
|
+ matrix.reset();
|
|
|
+ matrix.setRotate(degree);
|
|
|
+ return Bitmap.createBitmap(srcBitmap,0,0,srcBitmap.getWidth(),srcBitmap.getHeight(),matrix,true);
|
|
|
+ }
|
|
|
}
|