2013-03-08 124 views
0

我是Android編程新手。我想要構建MediaPlayer應用程序。如何通過點擊歌曲列表來播放歌曲

其實我已經在之前建立了一個簡單的MediaPlayer應用程序..我以前的應用程序只是有一個按鈕播放,一個按鈕暫停,一個按鈕停止..當點擊播放按鈕時,歌曲將播放。

而我的新應用程序想要使用ListLayout和幾個按鈕(如播放,暫停和停止)來完成歌曲列表。我想要的是當我點擊歌曲列表中的第一首歌,第一首歌曲將播放..

我已經在谷歌的一些研究,但沒有找到簡單的答案,我可以理解..我希望你們可以幫助我..謝謝你很多.. =)

這是我的更新代碼..我不知道如何調用歌曲列表..我存儲我的歌曲1,歌曲2,歌曲3在原始文件..但對於播放歌曲,我只能只播放一首歌曲。

package com.example.test7; 

    import android.media.MediaPlayer; 
    import android.os.Bundle; 
    import android.app.Activity; 
    import android.view.View; 
    import android.widget.AdapterView; 
    import android.widget.ArrayAdapter; 
    import android.widget.ImageButton; 
    import android.widget.ListView; 
    import android.widget.Toast; 
    import android.widget.AdapterView.OnItemClickListener; 

    public class MainActivity extends Activity { 

MediaPlayer mp; 
int position; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    mp = MediaPlayer.create(this,R.raw.song1); 

    setContentView(R.layout.activity_main); 

    ListView list = (ListView) findViewById(R.id.listView1); 
    String[] values = new String[] {"song1","song2","song3","song4","song5", 
            "song6","song7","song8","song9","song10"}; 

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, android.R.id.text1, values); 

    list.setAdapter(adapter); 

    list.setOnItemClickListener(new OnItemClickListener() { 
      public void onItemClick(AdapterView<?> parent, View view, 
        int position, long id) { 

      ListView list2 = (ListView) findViewById(R.id.listView1); 
      String item = (String) list2.getAdapter().getItem(position); 
      Toast.makeText(MainActivity.this, item + " selected", 5).show(); 

      mp.start(); 
     } 
    }); 

    ImageButton btnPlay = (ImageButton) this.findViewById(R.id.imageButton1); 
    ImageButton btnPause = (ImageButton) this.findViewById(R.id.imageButton2); 
    ImageButton btnStop = (ImageButton) this.findViewById(R.id.imageButton3); 

    btnPlay.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
     if (mp == null) { 
       mp = MediaPlayer.create(MainActivity.this, R.raw.song1); 

      } 
     if (!mp.isPlaying()) { 
      mp.start(); 

      } 

     } 
    }); 

    btnPause.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      if (mp != null) 
      { 
       mp.pause(); 
       position = mp.getCurrentPosition(); 
      } 

     } 
    }); 

    btnStop.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      if (mp != null) 
      { 
       if (mp.isPlaying()) { 
        mp.stop(); 
       } 
       mp.release(); 
       mp = null; 
      } 
     } 
    }); 
    } 
} 
+0

你能告訴我們你的代碼嗎? – Raptor 2013-03-08 02:38:11

+0

這個問題似乎過於模糊以引出有用的答案。 – 2013-03-08 02:56:27

+0

我已經發布我的代碼..實際上我不知道如何調用歌曲列表..我應該在哪裏存儲歌曲列表..我只能播放一首歌曲,但不能播放其他歌曲。 – paehmods 2013-03-08 03:23:53

回答

0

mp.reset();需要在代碼中實現。

0

你可以通過使用r.java中將出現的歌曲的最終int值來實現它。 注意: 檢查R.java文件中所有歌曲的最終int值。

final int[] mid = new int[] {0x7f040000,0x7f040001,0x7f040002,0x7f040003,0x7f040004,0x7f040005}; 
mainListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
@Override 
public void onItemClick(AdapterView<?> parent, View view, int position, 
long id) { 
s=MediaPlayer.create(SimpleListViewActivity.this, mid[position]); 
s.start(); 
} 
});