0

我正在制作音乐播放器,这是场景:

我从目录中删除了当前播放列表中即将播放的歌曲。(即该歌曲实际上已不再存在于手机中)

但是当播放器尝试播放歌曲时,它会抛出一个错误,捕获它并播放下一首歌曲。很简单,它正在工作。

然而问题是:

我将手机中删除的歌曲再次上传到之前的位置。

但是当我尝试使用 访问它时Android database curson using MediaStore.Audio,它仍然认为该歌曲不存在并抛出相同的错误。

下面的代码正在抛出android.database.CursorIndexOutOfBoundsException

请建议怎么做?

我是否需要更新一些标志,我的应用程序通过这些标志获取手机内存的更新状态并能够获取歌曲或其他任何东西?

String quesryString = MediaStore.Audio.Media.IS_MUSIC + "!=" + 0 + " AND "
        + MediaStore.Audio.Media.DATA + " = \"" + trackData + "\"";
// trackData is the name of the mp3 file & is coming right
String[] projection = { MediaStore.Audio.Media.TITLE,
        MediaStore.Audio.Media.ARTIST, MediaStore.Audio.Media.ALBUM,
        MediaStore.Audio.Media.DURATION };

Cursor cursor = context.getContentResolver().query(
        MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, projection,
        quesryString, null, null);
cursor.moveToFirst();
String songTitle =  cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE));
4

0 回答 0