@@ -30,10 +30,10 @@ import java.util.*
30
30
31
31
/* *
32
32
* 创建日期:2018/8/21 0021on 下午 4:40
33
- * 描述:图片选择工具类
33
+ * 描述:多媒体选择工具类
34
34
* @author:Vincent
35
35
*/
36
- class EasyPhoto {
36
+ class EasyMedia {
37
37
/* *
38
38
* 设置图片选择结果回调
39
39
*/
@@ -48,17 +48,17 @@ class EasyPhoto {
48
48
49
49
private val mainHandler = Handler (Looper .getMainLooper())
50
50
51
- fun setError (error : ((error: Exception ) -> Unit )? ): EasyPhoto {
51
+ fun setError (error : ((error: Exception ) -> Unit )? ): EasyMedia {
52
52
this .error = error
53
53
return this
54
54
}
55
55
56
- fun setCallback (callback : ((file: File ) -> Unit )): EasyPhoto {
56
+ fun setCallback (callback : ((file: File ) -> Unit )): EasyMedia {
57
57
this .callback = callback
58
58
return this
59
59
}
60
60
61
- fun setCrop (isCrop : Boolean ): EasyPhoto {
61
+ fun setCrop (isCrop : Boolean ): EasyMedia {
62
62
this .isCrop = isCrop
63
63
return this
64
64
}
@@ -68,7 +68,7 @@ class EasyPhoto {
68
68
*
69
69
* @param imgPath 图片的存储路径(包括文件名和后缀)
70
70
*/
71
- fun setFilePath (imgPath : String? ): EasyPhoto {
71
+ fun setFilePath (imgPath : String? ): EasyMedia {
72
72
if (imgPath.isNullOrEmpty()) {
73
73
this .mFilePath = null
74
74
} else {
@@ -81,11 +81,13 @@ class EasyPhoto {
81
81
82
82
/* *
83
83
* 选择文件
84
- * 支持图片、音频、视频、联系人以及其它类型文件
84
+ * 支持图片、音频、视频
85
85
*/
86
86
fun selectFile (activity : Activity ) {
87
87
val intent = Intent (Intent .ACTION_PICK , null ).apply {
88
88
setDataAndType(MediaStore .Images .Media .EXTERNAL_CONTENT_URI , " */*" )
89
+ setDataAndType(MediaStore .Audio .Media .EXTERNAL_CONTENT_URI , " */*" )
90
+ setDataAndType(MediaStore .Video .Media .EXTERNAL_CONTENT_URI , " */*" )
89
91
}
90
92
if (Looper .myLooper() == Looper .getMainLooper()) {
91
93
selectFileInternal(intent, activity)
@@ -99,7 +101,7 @@ class EasyPhoto {
99
101
*/
100
102
fun selectVideo (activity : Activity ) {
101
103
val intent = Intent (Intent .ACTION_PICK , null ).apply {
102
- setDataAndType(MediaStore .Images .Media .EXTERNAL_CONTENT_URI , " video/*" )
104
+ setDataAndType(MediaStore .Video .Media .EXTERNAL_CONTENT_URI , " video/*" )
103
105
}
104
106
if (Looper .myLooper() == Looper .getMainLooper()) {
105
107
selectFileInternal(intent, activity)
@@ -113,7 +115,7 @@ class EasyPhoto {
113
115
*/
114
116
fun selectAudio (activity : Activity ) {
115
117
val intent = Intent (Intent .ACTION_PICK , null ).apply {
116
- setDataAndType(MediaStore .Images .Media .EXTERNAL_CONTENT_URI , " audio/*" )
118
+ setDataAndType(MediaStore .Audio .Media .EXTERNAL_CONTENT_URI , " audio/*" )
117
119
}
118
120
if (Looper .myLooper() == Looper .getMainLooper()) {
119
121
selectFileInternal(intent, activity)
@@ -136,6 +138,8 @@ class EasyPhoto {
136
138
}
137
139
}
138
140
141
+
142
+
139
143
/* *
140
144
* 选择文件
141
145
*/
@@ -146,7 +150,7 @@ class EasyPhoto {
146
150
}
147
151
data ? : return @start
148
152
try {
149
- val inputFile = uriToFile(activity, data.data!! )
153
+ val inputFile = File ( data.data.path )
150
154
151
155
if (isCrop) {// 裁剪
152
156
zoomPhoto(inputFile, mFilePath ? : File (generateFilePath(activity)), activity)
@@ -258,8 +262,8 @@ class EasyPhoto {
258
262
} else {
259
263
// 兼容android7.0 使用共享文件的形式
260
264
val contentValues = ContentValues (1 )
261
- contentValues.put(MediaStore .Images .Media .DATA , imgFile.absolutePath)
262
- activity.application.contentResolver.insert(MediaStore .Images .Media .EXTERNAL_CONTENT_URI , contentValues)
265
+ contentValues.put(MediaStore .Audio .Media .DATA , imgFile.absolutePath)
266
+ activity.application.contentResolver.insert(MediaStore .Audio .Media .EXTERNAL_CONTENT_URI , contentValues)
263
267
}
264
268
265
269
val intent = Intent (MediaStore .Audio .Media .RECORD_SOUND_ACTION ).apply {
@@ -285,8 +289,8 @@ class EasyPhoto {
285
289
} else {
286
290
// 兼容android7.0 使用共享文件的形式
287
291
val contentValues = ContentValues (1 )
288
- contentValues.put(MediaStore .Images .Media .DATA , imgFile.absolutePath)
289
- activity.application.contentResolver.insert(MediaStore .Images .Media .EXTERNAL_CONTENT_URI , contentValues)
292
+ contentValues.put(MediaStore .Video .Media .DATA , imgFile.absolutePath)
293
+ activity.application.contentResolver.insert(MediaStore .Video .Media .EXTERNAL_CONTENT_URI , contentValues)
290
294
}
291
295
292
296
val intent = Intent (MediaStore .ACTION_VIDEO_CAPTURE ).apply {
@@ -358,8 +362,8 @@ class EasyPhoto {
358
362
} else {
359
363
// 兼容android7.0 使用共享文件的形式
360
364
val contentValues = ContentValues (1 )
361
- contentValues.put(MediaStore .Images .Media .DATA , imgFile.absolutePath)
362
- activity.application.contentResolver.insert(MediaStore .Images .Media .EXTERNAL_CONTENT_URI , contentValues)
365
+ contentValues.put(MediaStore .Audio .Media .DATA , imgFile.absolutePath)
366
+ activity.application.contentResolver.insert(MediaStore .Audio .Media .EXTERNAL_CONTENT_URI , contentValues)
363
367
}
364
368
val cameraIntents = ArrayList <Intent >()
365
369
val captureIntent = Intent (MediaStore .Audio .Media .RECORD_SOUND_ACTION )
@@ -396,8 +400,8 @@ class EasyPhoto {
396
400
} else {
397
401
// 兼容android7.0 使用共享文件的形式
398
402
val contentValues = ContentValues (1 )
399
- contentValues.put(MediaStore .Images .Media .DATA , imgFile.absolutePath)
400
- activity.application.contentResolver.insert(MediaStore .Images .Media .EXTERNAL_CONTENT_URI , contentValues)
403
+ contentValues.put(MediaStore .Video .Media .DATA , imgFile.absolutePath)
404
+ activity.application.contentResolver.insert(MediaStore .Video .Media .EXTERNAL_CONTENT_URI , contentValues)
401
405
}
402
406
val cameraIntents = ArrayList <Intent >()
403
407
val captureIntent = Intent (MediaStore .ACTION_VIDEO_CAPTURE )
@@ -433,7 +437,8 @@ class EasyPhoto {
433
437
fragment.start(intent, PhotoFragment .REQ_TAKE_FILE ) { requestCode: Int , data: Intent ? ->
434
438
if (requestCode == PhotoFragment .REQ_TAKE_FILE ) {
435
439
if (data?.data != null ){
436
- mFilePath = uriToFile(activity,data.data)
440
+ mFilePath = File (data.data.path)
441
+
437
442
if (isCrop){
438
443
zoomPhoto(takePhotoPath, mFilePath
439
444
? : File (generateFilePath(activity)), activity)
0 commit comments