从绝对路径获取音频文件的内容uri

时间:2016-02-06 14:27:41

标签: android mediastore

我已经经历了很多stackoverflow问题,但我无法找到答案。图像文件有一个答案,但在我的情况下不起作用。

所以我使用file.getAbsolutePath()获得了文件的绝对路径。但我需要将其转换为contentUri,以便下面的查询工作正常。

Cursor tempCursor = context.getContentResolver().query(uri,
                    proj, null, null, null);

它不起作用。我试过Uri.parse(contentUri),但我猜不会给出内容。请帮助我,我很久以前就被卡住了。谢谢!!

1 个答案:

答案 0 :(得分:1)

您不使用get.absolute等。只需查询Medfiastore.Audio等,然后带回_id和_DATA。 _id是歌曲ID,_DATA具有完整路径和曲目

在您可以使用的一段代码下面。只需输入曲目名称

即可
    public String getThisTrackId(Context context, String trackName) {
    ContentResolver cr = context.getContentResolver();
    final String _id = MediaStore.Audio.Media._ID;
    final String path = MediaStore.Audio.Media.DATA;
    final String[] columns = { _id };
    final String[] trackname = { "%"+ trackName +"%" };
    String where = path + " LIKE ?";
    String strtrack_id  = null;
    Cursor crs =cr.query(uri, columns, where, trackname, null);
    if(crs!= null && crs.moveToFirst()){
        strtrack_id  = crs.getString(crs.getColumnIndexOrThrow(_id));
        crs.close();
    }

    return strtrack_id;
}