2 Stimmen

Lieder von SD-Karte auf Android auswählen und abspielen

Ich habe Lieder im Ordner Musik auf der SD-Karte.

Und in meiner Anwendung möchte ich einen Titel von der SD-Karte auswählen aus der Liste der Musikdateien aus, und wenn ich einen Titel auswähle, sollte er mit der Play-Taste abgespielt werden. Wie kann ich das tun?

Ich habe dies bereits mit dem Content Resolver getan und eine Liste von Liedern erhalten. Gibt es eine Möglichkeit, dies zu tun Verwendung von Intents zur Auswahl von gespeicherten Songs auf der SD-Karte ?

Ich habe dies auf beiden Wegen getan. Prüfen Sie es einfach.

6voto

Geetanjali Punkte 1043

Endlich bekam ich meine Antwort.

Code mit Intents ist:

@Override
public boolean onOptionsItemSelected(MenuItem item)
{
    super.onOptionsItemSelected(item);
    System.gc();
       Intent intent = new Intent();
       intent.setAction(android.content.Intent.ACTION_VIEW);
       Uri data = Uri.parse("file:///sdcard/Music");
       String type = "audio/mp3";
       intent.setDataAndType(data, type);
       startActivityForResult(intent, Pick_song);
    return true;
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
    super.onActivityResult(requestCode, resultCode, data);

    switch(requestCode)
    {
        case Pick_song : if (resultCode == RESULT_OK)
        {
            muri = getIntent().getData();
            //String ringTonePath = muri.toString();

            if (muri != null)
            {
                try
                {
                    mMediaPlayer.start();
                    mMediaPlayer.setOnCompletionListener(new OnCompletionListener()
                    {
                           @Override
                        public void onCompletion(MediaPlayer mp)
                           {
                               mp.release();
                            mp = null;
                        }
                    });
                }
                catch (Exception exception)
                {
                    exception.printStackTrace();
                }
            }
        }

3voto

Randroid Punkte 3690

3voto

Geetanjali Punkte 1043
 @Override
public boolean onOptionsItemSelected(MenuItem item) 
{
    super.onOptionsItemSelected(item);
    System.gc();
    String[] listtype = { MediaStore.Audio.Media._ID,MediaStore.Audio.Media.DATA,MediaStore.Audio.Media.DISPLAY_NAME,MediaStore.Video.Media.SIZE };
    musiccursor = managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,listtype, null, null, null);
    count = musiccursor.getCount();
    musiclist = (ListView) findViewById(R.id.PhoneMusicList);
    musiclist.setAdapter(new MusicAdapter(this));
    musiclist.setOnItemClickListener(musicgridlistener);
    mMediaPlayer = new MediaPlayer();
    return true;
}
private OnItemClickListener musicgridlistener = new OnItemClickListener() 
{
    public void onItemClick(AdapterView<?> parent, View v, int position,long id)
    {
          System.gc();
          music_column_index = musiccursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA);
          musiccursor.moveToPosition(position);
          String filename = musiccursor.getString(music_column_index);
          try 
          {
                if (mMediaPlayer.isPlaying()) 
                {
                      mMediaPlayer.reset();
                }
                mMediaPlayer.setDataSource(filename);
                mMediaPlayer.prepare();
                mMediaPlayer.start();
                mMediaPlayer.setOnCompletionListener(new OnCompletionListener() 
                {
                    @Override
                    public void onCompletion(MediaPlayer mp) 
                    {
                        mp.release();
                        mp = null;                                   
                    }
                });     
          } 
          catch (Exception e) {}
    }
};

public class MusicAdapter extends BaseAdapter 
{
    private Context mContext;

    public MusicAdapter(Context c) 
    {
          mContext = c;
    }

    public int getCount() 
    {
          return count;
    }

    public Object getItem(int position) 
    {
          return position;
    }

    public long getItemId(int position) 
    {
          return position;
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent)
    {
          System.gc();
          TextView tv = new TextView(mContext.getApplicationContext());
          String id = null;
          if (convertView == null) 
          {
                music_column_index = musiccursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DISPLAY_NAME);
                musiccursor.moveToPosition(position);
                id = musiccursor.getString(music_column_index);
                music_column_index = musiccursor.getColumnIndexOrThrow(MediaStore.Audio.Media.SIZE);
                musiccursor.moveToPosition(position);
                id += " Size(KB):" + musiccursor.getString(music_column_index);
                tv.setText(id);
          } 
          else
          tv = (TextView) convertView;
          return tv;
    }       
}
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X