如何通过点击歌曲列表来播放歌曲
问题描述:
我是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;
}
}
});
}
}
答
mp.reset();需要在代码中实现。
答
你可以通过使用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();
}
});
你能告诉我们你的代码吗? – Raptor 2013-03-08 02:38:11
这个问题似乎过于模糊以引出有用的答案。 – 2013-03-08 02:56:27
我已经发布我的代码..实际上我不知道如何调用歌曲列表..我应该在哪里存储歌曲列表..我只能播放一首歌曲,但不能播放其他歌曲。 – paehmods 2013-03-08 03:23:53