Androidでローカルオーディオを取得する

Android上でローカルオーディオを取得するには、MediaStore クラスを使用してデバイスのメディアライブラリにアクセスできます。デバイス上のすべてのオーディオファイルを取得してそのパスを表示するコード例を以下に示します:

import android.content.ContentResolver;
import android.content.Context;
import android.database.Cursor;
import android.provider.MediaStore;
import android.util.Log;
import java.util.ArrayList;
import java.util.List;
public class AudioUtils {
public static List<String> getAllAudio(Context context) {
List<String> audioList = new ArrayList<>();
ContentResolver contentResolver = context.getContentResolver();
Cursor cursor = contentResolver.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
null, null, null, null);
if (cursor != null && cursor.moveToFirst()) {
int pathColumn = cursor.getColumnIndex(MediaStore.Audio.Media.DATA);
do {
String audioPath = cursor.getString(pathColumn);
audioList.add(audioPath);
} while (cursor.moveToNext());
}
if (cursor != null) {
cursor.close();
}
return audioList;
}
}

上記のサンプルを使用するには、アクティビティで `getAllAudio()` メソッドを次のように呼び出します。

List<String> audioList = AudioUtils.getAllAudio(context);
for (String audioPath : audioList) {
Log.d("Audio", audioPath);
}

Logcatに、すべてのオーディオファイルへのパスが出力されます。なお、本コードを使用するには、AndroidManifest.xml ファイルに適宜パーミッションを追加する必要があります。

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
bannerAds