2013-03-08 175 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(); 
} 
});