Новый для Kotlin, и я пытаюсь просто получить любое видео из галереи и открыть в плеере приложения устройства по умолчанию.
Моя функция, чтобы получить все видео. Он хорошо работает, но возвращаемый Uri похож на 'content: // ...', я не знаю, верно ли это или это должно быть что-то вроде 'file: //...'
private val videos = mutableListOf<Uri>()
private fun getAllVideos() {
val uriExternal = MediaStore.Video.Media.EXTERNAL_CONTENT_URI
val projection = arrayOf(MediaStore.Video.Media._ID)
contentResolver.query(uriExternal, projection, null, null, null)?.use { cursor ->
while (cursor.moveToNext()) {
val videoUri = Uri.withAppendedPath(uriExternal, "" + cursor.getString(0))
videos.add(videoUri)
}
}
}
Затем я пытаюсь открыть Uri, как это, но я всегда получаю сообщение об ошибке от игрока, и ничего не работает.
val intent = Intent(Intent.ACTION_VIEW).apply {
data = videos.first()
type = "video/*"
}
startActivity(intent)
Я искал, но не нашел ни одного обновленного учебника, который не используйте «MediaStore.Video.Media.DATA» (сейчас не рекомендуется). Что-то я делаю не так?