首页 > 解决方案 > Android9录屏时保存为3gp文件的问题

问题描述

在 Android 9 中,即使您将 MediaStore 的 MIME_TYPE 指定为“video/mp4”,将 DISPLAY_NAME 指定为“fileName.mp4”,也会将其保存为 3gp 文件。

在 Android 10 中,它可以正常工作。

如何解决这个问题呢

       val contentValues = ContentValues().apply {
            put(MediaStore.Video.Media.TITLE, fileName)
            put(MediaStore.Video.Media.DISPLAY_NAME, fileName)
            put(MediaStore.Video.Media.DATE_ADDED, dateSeconds)
            put(MediaStore.Video.Media.DATE_MODIFIED, dateSeconds)
            put(MediaStore.Video.Media.MIME_TYPE, "video/mp4")
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
                put(MediaStore.Video.Media.IS_PENDING, 1)
            }
        }

        val itemUri = contentResolver.insert(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, contentValues)

        contentResolver.openOutputStream(itemUri, "w")?.use { os ->
            tempFile.inputStream().copyTo(os)
        }

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
            contentValues.clear()
            contentValues.apply {
                put(MediaStore.Video.Media.IS_PENDING, 0)
            }
            contentResolver.update(itemUri, contentValues, null, null)
        }

标签: mediarecordermediastorescreen-captureandroid-9.0-pie3gp

解决方案


推荐阅读