1

誰かが私を正しい方向に向けることができますか:

このクエリをランダムな順序で返すにはどうすればよいですか?

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

「asc」をRandom()、RANDなど、さまざまなものに置き換えてみました....困惑しています

4

2 に答える 2

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 に答える
2

25 のランダムなレコードを選択します。

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

これは私にとってはうまくいきました。

于 2012-07-04T19:14:34.577 に答える