まずはコンテントプロバイダからデータを取得します。
Java
1ContentResolver cr = getApplicationContext().getContentResolver();
2 Cursor cursor = cr.query(
3 MediaStore.Audio.Media.EXTERNAL_CONTENT_URI , //データの種類
4 new String[]{
5 MediaStore.Audio.Media.ALBUM ,
6 MediaStore.Audio.Media.ARTIST ,
7 MediaStore.Audio.Media.TITLE,
8 MediaStore.Audio.Media._ID
9 } ,//取得する
10 null , //フィルター条件 nullはフィルタリング無し
11 null , //フィルター用のパラメータ
12 null //並べ替え
13 );
14 ArrayList<String> list = new ArrayList<String>();
15 cursor.moveToFirst();
16 do{
17 list.add(cursor.getString(cursor.getColumnIndex( MediaStore.Audio.Media._ID)));
18 }while(cursor.moveToNext());
取得したデータをもとに再生します。
Java
1MediaPlayer m = new MediaPlayer();
2String mediaId = list.get(0)//好きなIDを取得する
3mp.setDataSource(getApplicationContext(),Uri.withAppendedPath(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,mediaId)));
4mp.prepare();
5mp.start();
注意点として、端末内のすべての音声にアクセスできるわけではありません。詳細については質問の内容から離れてしまうので自身で調査してみてください。
コンテントプロバイダから引き出せる情報一覧その1
コンテントプロバイダから引き出せる情報一覧その2
コンテントプロバイダから引き出せる情報一覧その3
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/08/29 01:23
2015/08/29 01:38
2015/08/29 02:13