1 year ago

#380649

test-img

Ali Jawad Hussain Gorayya

How to fetch Video File Paths From Android Tv Internal and Sd Card Storage...?

I am using following code to fetch video file paths that is available on Android offical documentation..

    fun getAllVideosPath(context: Context) {
    val videoList = mutableListOf<VideoInfo>()

    val collection =
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
            MediaStore.Video.Media.getContentUri(
                MediaStore.VOLUME_EXTERNAL
            )
        } else {
            MediaStore.Video.Media.EXTERNAL_CONTENT_URI
        }

    val projection = arrayOf(
        MediaStore.Video.Media._ID,
        MediaStore.Video.Media.DISPLAY_NAME,
        MediaStore.Video.Media.DURATION,
        MediaStore.Video.Media.SIZE
    )

// Show only videos that are at least 5 minutes in duration.
    val selection = "${MediaStore.Video.Media.DURATION} >= ?"
    val selectionArgs = arrayOf(
        TimeUnit.MILLISECONDS.convert(1, TimeUnit.SECONDS).toString()
    )

    // Display videos in alphabetical order based on their display name.
    val sortOrder = "${MediaStore.Video.Media.DISPLAY_NAME} ASC"

    val query =
        context.contentResolver.query(collection, projection, selection, selectionArgs, sortOrder)

    query?.use { cursor ->
        // Cache column indices.
        val idColumn = cursor.getColumnIndexOrThrow(MediaStore.Video.Media._ID)
        val nameColumn =
            cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DISPLAY_NAME)
        val durationColumn =
            cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DURATION)
        val sizeColumn = cursor.getColumnIndexOrThrow(MediaStore.Video.Media.SIZE)

        Log.i("CursorSize", "${cursor.position}")

        while (cursor.moveToNext()) {
            // Get values of columns for a given video.
            val id = cursor.getLong(idColumn)
            val name = cursor.getString(nameColumn)
            val duration = cursor.getInt(durationColumn)
            val size = cursor.getInt(sizeColumn)

            val contentUri: Uri = ContentUris.withAppendedId(
                MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
                id
            )

            // Stores column values and the contentUri in a local object
            // that represents the media file.
            videoList += VideoInfo(contentUri, name, duration, size)
            Log.i("asdsa", name)
        }
    }


}

I am getting file paths on android mobile using this Up to Android 12 but unable to get paths on Andorid tv. Is i am missing some thing or there is some other way to get file paths on android tv...?

java

android

kotlin

android-tv

0 Answers

Your Answer

Accepted video resources