У меня проблемы с выбором видео из галереи в Android 10. Я получаю Uri от выбора видео, но не знаю, как go использовать этот Uri в onActivityResult с contentProvider для получения видео, которое выбрал пользователь.
fun loadVideoFromGallery(): Intent {
return Intent(
Intent.ACTION_PICK, MediaStore.Video.Media.EXTERNAL_CONTENT_URI
).apply {
type = "video/*"
}
}
Вот Uri, который я получаю в onActivityResult (data? .data):
content: // com. google. android .apps.photos.contentprovider / -1 / 2 / content% 3A% 2F% 2Fmedia% 2Fexternal% 2Fvideo% 2Fmedia% 2F28 / ORIGINAL / NONE / 1128816056
Я могу для циклического просмотра
while (cursor.moveToNext ())
, и я могу использовать контент, который я просматриваю, но я не могу понять узнаем, как перейти к видео, выбранному пользователем.
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (resultCode == Activity.RESULT_OK && null != data) {
val selectedVideoUri = date?.data
if (selectedVideoUri != null) {
val projection = arrayOf(
MediaStore.Video.Media._ID
)
val selection: String? = null
val selectionArgs: Array<String>? = null
contentResolver.query(
MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
projection,
selection,
selectionArgs,
null
)?.use { cursor ->
try {
val idColumn =
cursor.getColumnIndexOrThrow(MediaStore.Video.Media._ID)
while (cursor.moveToNext()) {
val id = cursor.getLong(idColumn)
val contentUri: Uri = ContentUris.withAppendedId(
MediaStore.Video.Media.EXTERNAL_CONTENT_URI, id
)
val thumb = contentResolver.loadThumbnail(
contentUri, Size(imageView.width, imageView.height), null
)
imageView.setImageBitmap(thumb)
}
} catch (e: Exception) {
e.printStackTrace()
}
}
}
}
}
Как видите, я перебираю элементы внутри каталога MediaStore.Video.Media.EXTERNAL_CONTENT_URI, но imageView.setImageBitmap (thumb) с постоянной настройкой последнего элемента, который он проходит.
Я собирался грубая документация, но я все еще не нашел способ решить эту проблему. Мы будем очень благодарны за любую помощь о том, как взаимодействовать с запросами поставщика контента.