【问题标题】:Android Studio Mediastore.Audio.Media.DATA is Deprecated, any alternatives?Android Studio Mediastore.Audio.Media.DATA 已弃用,还有其他选择吗?
【发布时间】:2023-02-26 05:37:41
【问题描述】:

我正在尝试访问外部存储上的 mp3 文件,并且我正在使用 mediastore 来检索它。然而,android studio 似乎指出通过 mediastore.audio.media.DATA 获取它已被弃用。这是我的代码

        val mediaUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI
        val select = MediaStore.Audio.Media.IS_MUSIC + "!=0"

        val rs = contentResolver.query(mediaUri, null, select, null, null)


        if (rs != null) {
            while (rs.moveToNext()) {
                val uri = rs.getString(rs.getColumnIndex(MediaStore.Audio.Media.DATA))
                val author = rs.getString(rs.getColumnIndex(MediaStore.Audio.Media.ARTIST))
                val title = rs.getString(rs.getColumnIndex(MediaStore.Audio.Media.TITLE))
                val albumId = rs.getLong(rs.getColumnIndex(MediaStore.Audio.Albums.ALBUM_ID))

                val uriImage = Uri.Builder()
                uriImage
                    .scheme("content")
                    .authority("media")
                    .appendPath("external")
                    .appendPath("audio")
                    .appendPath("albumart")
                    .appendPath(albumId.toString())


                val music = Music(title, author, uri, uriImage.build())
                listMusic.add(music)


            }
        }

【问题讨论】:

    标签: android kotlin


    【解决方案1】:

    我自己也遇到了同样的问题,奇怪的是很难找到使用什么来代替。如果不赞成使用某些内容,他们至少应该包含一个链接,说明该怎么做。 Spring 框架在这方面非常擅长,所以也许我被宠坏了。

    使用 MediaStore.Audio.AudioColumns._ID 然后你可以构建一个内容 URI,如:

    val mediaId = rs.getString(MediaStore.Audio.AudioColumns._ID)
    val uri = Uri.parse(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI.toString() + File.separator + mediaId)
    

    我将它与 MediaPlayer 一起使用,所以我像这样使用该 URI:

    mediaPlayer.setDataSource(context, uri)
    

    希望这可以帮助其他想要了解最新情况并找到您的问题的人。

    Source

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-07
      • 2018-09-26
      • 2019-11-01
      • 1970-01-01
      • 2013-08-27
      相关资源
      最近更新 更多