mirror of
https://github.com/NiciDieNase/chaosflix
synced 2024-11-14 00:27:13 +00:00
Leanback: wrap calls to mediaDataRetriever in try-catch
This commit is contained in:
parent
a6256641e4
commit
b2188b8c19
1 changed files with 17 additions and 5 deletions
|
@ -64,7 +64,11 @@ class ChaosflixSeekDataProvider(
|
||||||
canceled = false
|
canceled = false
|
||||||
Log.d(TAG, "Retriever was canceled before, reinitializing")
|
Log.d(TAG, "Retriever was canceled before, reinitializing")
|
||||||
mediaMetadataRetriever = MediaMetadataRetriever()
|
mediaMetadataRetriever = MediaMetadataRetriever()
|
||||||
mediaMetadataRetriever.setDataSource(url, mapOf("User-Agent" to ApiFactory.buildUserAgent()))
|
try {
|
||||||
|
mediaMetadataRetriever.setDataSource(url, mapOf("User-Agent" to ApiFactory.buildUserAgent()))
|
||||||
|
} catch (ex: Exception) {
|
||||||
|
Log.e(TAG, "Error: ${ex.message}", ex)
|
||||||
|
}
|
||||||
generateThumbs()
|
generateThumbs()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -139,17 +143,21 @@ class ChaosflixSeekDataProvider(
|
||||||
}
|
}
|
||||||
val startTime = System.currentTimeMillis()
|
val startTime = System.currentTimeMillis()
|
||||||
val pos = positions[index] * 1000
|
val pos = positions[index] * 1000
|
||||||
val thumb: Bitmap =
|
val thumb: Bitmap = try {
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
|
||||||
mediaMetadataRetriever.getScaledFrameAtTime(pos, MediaMetadataRetriever.OPTION_CLOSEST_SYNC,
|
mediaMetadataRetriever.getScaledFrameAtTime(pos, MediaMetadataRetriever.OPTION_CLOSEST_SYNC,
|
||||||
THUMB_WIDTH, THUMB_HEIGHT)
|
THUMB_WIDTH, THUMB_HEIGHT)
|
||||||
} else {
|
} else {
|
||||||
mediaMetadataRetriever.getFrameAtTime(pos, MediaMetadataRetriever.OPTION_CLOSEST_SYNC)
|
mediaMetadataRetriever.getFrameAtTime(pos, MediaMetadataRetriever.OPTION_CLOSEST_SYNC)
|
||||||
} ?: Bitmap.createBitmap(THUMB_WIDTH, THUMB_HEIGHT, Bitmap.Config.ARGB_8888)
|
} ?: Bitmap.createBitmap(THUMB_WIDTH, THUMB_HEIGHT, Bitmap.Config.ARGB_8888)
|
||||||
|
} catch (ex: Exception) {
|
||||||
|
Log.e(TAG, "Error: ${ex.message}", ex)
|
||||||
|
return Bitmap.createBitmap(10,10, Bitmap.Config.RGB_565)
|
||||||
|
}
|
||||||
Log.d(TAG, "Thumb size: ${thumb.width}x${thumb.height}")
|
Log.d(TAG, "Thumb size: ${thumb.width}x${thumb.height}")
|
||||||
|
|
||||||
val seconds = positions[index] / 1000
|
val seconds = positions[index] / 1000
|
||||||
val time = String.format("%d:%02d", seconds / 60, seconds % 60)
|
val time = String.format("%d:%02d:%02d",(seconds / 3600) ,(seconds / 60) % 60, seconds % 60)
|
||||||
drawStringToBitmap(thumb, time)
|
drawStringToBitmap(thumb, time)
|
||||||
|
|
||||||
val duration = System.currentTimeMillis() - startTime
|
val duration = System.currentTimeMillis() - startTime
|
||||||
|
@ -196,7 +204,11 @@ class ChaosflixSeekDataProvider(
|
||||||
canceled = true
|
canceled = true
|
||||||
GlobalScope.launch {
|
GlobalScope.launch {
|
||||||
generateThumbsJob?.cancelAndJoin()
|
generateThumbsJob?.cancelAndJoin()
|
||||||
mediaMetadataRetriever.release()
|
try {
|
||||||
|
mediaMetadataRetriever.release()
|
||||||
|
} catch (ex: Exception) {
|
||||||
|
Log.e(TAG, "Error: ${ex.message}", ex)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
AnalyticsWrapperImpl.addAnalyticsEvent(AnalyticsWrapper.thumbnailsStatEvent,
|
AnalyticsWrapperImpl.addAnalyticsEvent(AnalyticsWrapper.thumbnailsStatEvent,
|
||||||
mapOf(
|
mapOf(
|
||||||
|
|
Loading…
Reference in a new issue