1

有人可以指出我正确的方向吗:

如何以随机顺序提供此查询?

musiccursor = getActivity().getContentResolver().query(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, 
musicdata, 
selection,
dirs, 
MediaColumns.DATA+ " asc");

我尝试用各种东西替换“asc”,包括 Random()、RAND....我很难过

4

2 回答 2

2

选择 25 条随机记录:

musiccursor = getActivity().getContentResolver().query(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, 
musicdata, 
selection,
dirs, 
"RANDOM() LIMIT 25");

这对我有用。

于 2012-07-04T19:14:34.577 回答
2

作为记录,这就是我实施解决方案的方式:

if(isShuffle){
// shuffle is on - play a random song
 sortOrder = "RANDOM()";
 } 
else{
sortOrder = MediaColumns.DATA+ " asc";   
}

...

//run the query          
musiccursor = ctx.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, 
musicdata, 
selection,
dirs,
sortOrder);

通过这样做,我可以将随机排序的光标扔到列表视图中。用户可以看到随机播放列表顺序,而不是像大多数应用程序那样“秘密”随机选择下一首歌曲。

于 2012-07-19T21:27:51.683 回答