-
Notifications
You must be signed in to change notification settings - Fork 14
/
MediaUtils.kt
193 lines (175 loc) · 4.01 KB
/
MediaUtils.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
package com.excellence.basetoolslibrary.utils
import android.media.MediaMetadataRetriever
/**
* <pre>
* author : VeiZhang
* blog : http://tiimor.cn
* time : 2019/9/20
* desc : 多媒体:音视频相关
* </pre>
*/
object MediaUtils {
/**
* 读取多媒体信息的键
*
* @param path
* @param keyCode
* @return
*/
@JvmStatic
fun getKey(path: String?, keyCode: Int): String? {
val mmr = MediaMetadataRetriever()
mmr.setDataSource(path)
return mmr.extractMetadata(keyCode)
}
/**
* 读取多媒体信息的专辑
*
* @param path
* @return
*/
@JvmStatic
fun getAlbum(path: String?): String? {
return getKey(path, MediaMetadataRetriever.METADATA_KEY_ALBUM)
}
/**
* 读取多媒体信息的艺术家
*
* @param path
* @return
*/
@JvmStatic
fun getArtist(path: String?): String? {
return getKey(path, MediaMetadataRetriever.METADATA_KEY_ARTIST)
}
/**
* 读取多媒体信息的作者
*
* @param path
* @return
*/
@JvmStatic
fun getAuthor(path: String?): String? {
return getKey(path, MediaMetadataRetriever.METADATA_KEY_AUTHOR)
}
/**
* 读取多媒体信息的作曲家
*
* @param path
* @return
*/
@JvmStatic
fun getComposer(path: String?): String? {
return getKey(path, MediaMetadataRetriever.METADATA_KEY_COMPOSER)
}
/**
* 读取多媒体信息的日期
*
* @param path
* @return
*/
@JvmStatic
fun getDate(path: String?): String? {
return getKey(path, MediaMetadataRetriever.METADATA_KEY_DATE)
}
/**
* 读取多媒体信息的分类
*
* @param path
* @return
*/
@JvmStatic
fun getGenre(path: String?): String? {
return getKey(path, MediaMetadataRetriever.METADATA_KEY_GENRE)
}
/**
* 读取多媒体信息的名称
*
* @param path
* @return
*/
@JvmStatic
fun getTitle(path: String?): String? {
return getKey(path, MediaMetadataRetriever.METADATA_KEY_TITLE)
}
/**
* 读取多媒体信息的年份
*
* @param path
* @return
*/
@JvmStatic
fun getYear(path: String?): String? {
return getKey(path, MediaMetadataRetriever.METADATA_KEY_YEAR)
}
/**
* 读取多媒体信息的时长
*
* @param path
* @return
*/
@JvmStatic
fun getDuration(path: String?): String? {
return getKey(path, MediaMetadataRetriever.METADATA_KEY_DURATION)
}
/**
* 读取多媒体信息的类型
*
* @param path
* @return
*/
@JvmStatic
fun getMimeType(path: String?): String? {
return getKey(path, MediaMetadataRetriever.METADATA_KEY_MIMETYPE)
}
/**
* 读取多媒体信息是否有音频
*
* @param path
* @return
*/
@JvmStatic
fun getHasAudio(path: String?): String? {
return getKey(path, MediaMetadataRetriever.METADATA_KEY_HAS_AUDIO)
}
/**
* 读取多媒体信息是否有视频
*
* @param path
* @return
*/
@JvmStatic
fun getHasVideo(path: String?): String? {
return getKey(path, MediaMetadataRetriever.METADATA_KEY_HAS_VIDEO)
}
/**
* 读取多媒体信息的宽度
*
* @param path
* @return
*/
@JvmStatic
fun getWidth(path: String?): String? {
return getKey(path, MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH)
}
/**
* 读取多媒体信息的高度
*
* @param path
* @return
*/
@JvmStatic
fun getHeight(path: String?): String? {
return getKey(path, MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT)
}
/**
* 读取多媒体信息的码率
*
* @param path
* @return
*/
@JvmStatic
fun getBitrate(path: String?): String? {
return getKey(path, MediaMetadataRetriever.METADATA_KEY_BITRATE)
}
}