リストビューに入れた音楽を再生できません。私はそれが準備()関数またはインデックスの問題だと信じています(なぜそうなるのかわかりません。私はこれをたくさん研究し、試行錯誤しました。私はまだそれを理解することができません。ありがとうすべての助けのために。
ソースコード:
import java.io.IOException;
import android.annotation.SuppressLint;
import android.app.ListActivity;
import android.database.Cursor;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract.Contacts;
import android.provider.MediaStore;
import android.provider.MediaStore.Audio;
import android.support.v4.widget.CursorAdapter;
import android.support.v4.widget.SimpleCursorAdapter;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
public class ListViewActivity extends ListActivity{
ListView lv;
MediaPlayer mp;
int music_column_index;
Cursor c;
int currentPosition;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
lv = getListView();
c = getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
null, null, null, MediaStore.Audio.Media.TITLE + " ASC");
String[] cols = new String[] {MediaStore.Audio.Media.TITLE};
int[] views = new int[] {android.R.id.text1};
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
android.R.layout.simple_list_item_1, c, cols, views,0);
this.setListAdapter(adapter);
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
// TODO Auto-generated method stub
//System.out.println(c.getString(position));
try {
mp = new MediaPlayer();
//mp.setDataSource(c.getString(position));
mp.setDataSource(c.getString(position));
mp.prepare();
mp.start();
} catch (Exception ex) {
// TODO Auto-generated catch block
System.out.println(ex);
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.list_view, menu);
return true;
}
}