好吧,我现在可以播放实际的歌曲了,但是我的音乐播放器的刚度有问题,但是当我想播放下一首歌曲时,会出现错误
我的原始目录中有3首歌曲
这是我的变量和onCreate方法
ListView listaCanciones;
List<String> list;
ListAdapter adapter;
MediaPlayer mp; ;
int posicion = 0;
Button play_pause, btn_repetir;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_explorador);
play_pause = (Button)findViewById(R.id.btnPlay_Pause);
listaCanciones = findViewById(R.id.lv);
list = new ArrayList<>();
Field[] fields = R.raw.class.getFields();
for (int i = 0; i < fields.length; i++){
list.add(fields[i].getName());
}
adapter = new ArrayAdapter<>(this, R.layout.list_view_configuracion, list);
listaCanciones.setAdapter(adapter);
listaCanciones.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
if(mp != null ){
mp.stop();
mp.release();
}
int resID = getResources().getIdentifier(list.get(i), "raw", getPackageName());
mp = MediaPlayer.create(Explorador.this, resID);
mp.start();
play_pause.setBackgroundResource(R.drawable.pausa);
//Toast.makeText(getApplicationContext(), "Reproduciendo", Toast.LENGTH_SHORT).show();
}
});
}
一切都很好,我也有一种暂停实际歌曲的方法
public void play_pause(View view){
if (mp.isPlaying()){
mp.pause();
play_pause.setBackgroundResource(R.drawable.reproducir);
Toast.makeText(this, "Pausa", Toast.LENGTH_SHORT).show();
}
else {
mp.start();
play_pause.setBackgroundResource(R.drawable.pausa);
Toast.makeText(this, "Reproduciendo", Toast.LENGTH_SHORT).show();
}
但是在我的方法中,下一步我不知道如何传递下一首歌曲
public void Next(View view){
if (posicion < list.length -1){
if(list[posicion].isPlaying()){
list[posicion].stop();
list++;
list[posicion].start();
}
else {
posicion++;
}
}
else {
Toast.makeText(this, "No more songs", Toast.LENGTH_SHORT).show();
}
}
答案 0 :(得分:0)
您遇到什么错误?
在Next()
方法中,您就像拥有一个MediaPlayer列表一样。但是您只有一个播放器和多个音频文件,对吗?
您只需要:
onItemClick()
方法所做的那样,以新的位置启动新的玩家。