0

リストビューに入れた音楽を再生できません。私はそれが準備()関数またはインデックスの問題だと信じています(なぜそうなるのかわかりません。私はこれをたくさん研究し、試行錯誤しました。私はまだそれを理解することができません。ありがとうすべての助けのために。

ソースコード:

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;
    }

}
4

1 に答える 1