15
15
*******************************************************************************/
16
16
package com .nostra13 .universalimageloader .core .download ;
17
17
18
- import android .content .ContentResolver ;
19
- import android .content .Context ;
20
- import android .graphics .Bitmap ;
21
- import android .graphics .Bitmap .CompressFormat ;
22
- import android .graphics .drawable .BitmapDrawable ;
23
- import android .net .Uri ;
24
- import com .nostra13 .universalimageloader .core .DisplayImageOptions ;
25
- import com .nostra13 .universalimageloader .core .assist .ContentLengthInputStream ;
26
- import com .nostra13 .universalimageloader .utils .IoUtils ;
27
-
28
18
import java .io .BufferedInputStream ;
29
19
import java .io .ByteArrayInputStream ;
30
20
import java .io .ByteArrayOutputStream ;
37
27
import java .net .URL ;
38
28
import java .net .URLConnection ;
39
29
30
+ import android .content .ContentResolver ;
31
+ import android .content .Context ;
32
+ import android .graphics .Bitmap ;
33
+ import android .graphics .Bitmap .CompressFormat ;
34
+ import android .graphics .drawable .BitmapDrawable ;
35
+ import android .net .Uri ;
36
+ import android .provider .MediaStore ;
37
+
38
+ import com .nostra13 .universalimageloader .core .DisplayImageOptions ;
39
+ import com .nostra13 .universalimageloader .core .assist .ContentLengthInputStream ;
40
+ import com .nostra13 .universalimageloader .utils .IoUtils ;
41
+
40
42
/**
41
43
* Provides retrieving of {@link InputStream} of image by URI from network or file system or app resources.<br />
42
44
* {@link URLConnection} is used to retrieve image stream from network.
@@ -172,6 +174,18 @@ protected InputStream getStreamFromFile(String imageUri, Object extra) throws IO
172
174
protected InputStream getStreamFromContent (String imageUri , Object extra ) throws FileNotFoundException {
173
175
ContentResolver res = context .getContentResolver ();
174
176
Uri uri = Uri .parse (imageUri );
177
+
178
+ if (isVideoUri (uri )){
179
+
180
+ Bitmap bitmap = MediaStore .Video .Thumbnails .getThumbnail (res , Long .valueOf (uri .getLastPathSegment ()), MediaStore .Images .Thumbnails .MINI_KIND , null );
181
+
182
+ ByteArrayOutputStream bos = new ByteArrayOutputStream ();
183
+ bitmap .compress (CompressFormat .PNG , 0 , bos );
184
+ byte [] bitmapdata = bos .toByteArray ();
185
+ return new ByteArrayInputStream (bitmapdata );
186
+
187
+ }
188
+
175
189
return res .openInputStream (uri );
176
190
}
177
191
@@ -224,4 +238,14 @@ protected InputStream getStreamFromDrawable(String imageUri, Object extra) {
224
238
protected InputStream getStreamFromOtherSource (String imageUri , Object extra ) throws IOException {
225
239
throw new UnsupportedOperationException (String .format (ERROR_UNSUPPORTED_SCHEME , imageUri ));
226
240
}
241
+
242
+ private boolean isVideoUri (Uri uri ) {
243
+ String mimeType = context .getContentResolver ().getType (uri );
244
+
245
+ if (mimeType == null ){
246
+ return false ;
247
+ }
248
+
249
+ return mimeType .startsWith ("video/" );
250
+ }
227
251
}
0 commit comments