@@ -220,27 +220,30 @@ class ExoVideoPlayer(private val mContext: Context) : AbstractVideoPlayer(), Pla
220
220
override fun getTracks (type : TrackType ): List <VideoTrackBean > {
221
221
val exoTrackType = getExoTrackType(type) ? : return emptyList()
222
222
223
- return exoplayer.currentTracks.groups
224
- .filter { it.type == exoTrackType }
225
- .flatMap {
226
- mapByLength(it.length) { index ->
227
- val trackFormat = it.getTrackFormat(index)
228
- val name = trackNameProvider.getTrackName(trackFormat)
229
- val selected = it.isTrackSelected(index)
230
- VideoTrackBean .internal(index.toString(), name, type, selected)
231
- }
223
+ return exoplayer.currentTracks.groups.flatMapIndexed { groupIndex: Int , group: Tracks .Group ->
224
+ if (group.type != exoTrackType) {
225
+ return @flatMapIndexed emptyList()
226
+ }
227
+ mapByLength(group.length) { trackIndex ->
228
+ val trackFormat = group.getTrackFormat(trackIndex)
229
+ val name = trackNameProvider.getTrackName(trackFormat)
230
+ val selected = group.isTrackSelected(trackIndex)
231
+ val id = " $groupIndex -$trackIndex "
232
+ VideoTrackBean .internal(id, name, type, selected)
232
233
}
234
+ }
233
235
}
234
236
235
237
override fun selectTrack (track : VideoTrackBean ) {
236
238
val exoTrackType = getExoTrackType(track.type) ? : return
237
- val trackId = track.id?.toIntOrNull() ? : return
238
239
239
- val override = exoplayer.currentTracks.groups
240
- .firstOrNull { it.type == exoTrackType }
241
- ?.mediaTrackGroup
242
- ?.let { TrackSelectionOverride (it, trackId) }
243
- ? : return
240
+ val trackIds = track.id?.split(" -" ) ? : return
241
+ val groupIndex = trackIds.getOrNull(0 )?.toInt() ? : return
242
+ val trackIndex = trackIds.getOrNull(1 )?.toInt() ? : return
243
+
244
+ val override = exoplayer.currentTracks.groups.getOrNull(groupIndex)?.let {
245
+ TrackSelectionOverride (it.mediaTrackGroup, trackIndex)
246
+ } ? : return
244
247
245
248
mTrackSelector.parameters = TrackSelectionParameters .Builder (mContext)
246
249
.setTrackTypeDisabled(exoTrackType, false )
0 commit comments