Android 从MediaStore.Audio.Media中选择多首歌曲id
我使用以下命令创建了一个getContentResolver.queryAndroid 从MediaStore.Audio.Media中选择多首歌曲id,android,android-mediaplayer,Android,Android Mediaplayer,我使用以下命令创建了一个getContentResolver.query uri = android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; String projection[] = { android.provider.MediaStore.Audio.Media.DATA, android.provider.MediaStore.Audio.Media.TI
uri = android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
String projection[] = { android.provider.MediaStore.Audio.Media.DATA,
android.provider.MediaStore.Audio.Media.TITLE,
android.provider.MediaStore.Audio.Media.ARTIST,
android.provider.MediaStore.Audio.Media.ALBUM,
android.provider.MediaStore.Audio.Media.COMPOSER,
android.provider.MediaStore.Audio.Media.DURATION,
MediaStore.Audio.Media._ID,
android.provider.MediaStore.Audio.Media.ALBUM_ID };
String selection1 = MediaStore.Audio.Media._ID + "=?" ;
String[] selectionArgs = new String[] {"" + 19};
cursor = this.getContentResolver().query(uri, projection,
selection1, selectionArgs, null);
songs = new ArrayList<String>();
while (cursor.moveToNext()) {
songs.add(cursor.getString(1));
此查询失败
有没有合适的方法来选择多首歌曲,上面的查询有什么问题。
请解释需要进行的更改。我认为您使用IN运算符进行查询没有任何错误。我怀疑IN的查询有其特殊性和局限性。然而,我没有使用它。尝试只使用OR运算符。 例如: 当然,不要使用selectionArgs作为参数。另一个好的尝试是使用原始查询,即文档@。对于原始查询,您可以使用IN运算符,我认为这是简化查询的一个好主意。下次我应该用它
谢谢你的提问 在加入之前,请先多加一点空间,非常感谢@pskinkhow我们可以从一个特定id中选择多首歌曲吗?我已经使用SelectionAgs作为android.provider.MediaStore.Audio.Albums从一个专辑id中选择了所有歌曲。\u id,现在,正如上面的代码,我们如何在SelectionAgs中同时使用歌曲的多个id和唱片集id?我们不知道您在说什么相同的:MediaStore.Audio.Media.\u id对您所有的歌曲都是唯一的,换句话说,MediaStore.Audio.Media表中不能有两个相同的\u id
String selection1 = MediaStore.Audio.Media._ID + "IN(?,?)";
String[] selectionArgs = new String[] {"" + 12,"" + 19};
String selection1 = MediaStore.Audio.Media._ID + "=12" + " OR " + MediaStore.Audio.Media._ID + "=19";