我正在使用媒体播放器播放带有listview的原始文件夹中的音频文件。
一切顺利,但我有问题
问题是:
当第一个音频文件结束时,它播放第二个文件,但是当第二个文件结束时,它不播放第三个文件。
问题是什么??
我尝试在mp上添加setOnCompletionListener并重置mp并在(位置+ 1)播放audion
这是真的吗?
我有另一个问题。 当它结束播放列表视图中的第一个项目并开始播放第二个项目时,第一个项目背景仍然是彩色的(蓝色),并且它没有着色第二个项目背景。 有人可以帮我恳求
这是我的代码
private final String[] listContent = { "song1", "song2","song3"};
private final int[] resID = { R.raw.song1, R.raw.song2, R.raw.song3 };
mp = new MediaPlayer();
mainList = (ListView) findViewById(R.id.listView1);
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, listContent);
mainList.setAdapter(adapter);
mainList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view,
final int position,final long id) {
playSong(position);
String selectedSweet = mainList.getItemAtPosition(position).toString();
tv1.setText(selectedSweet);
System.out.println(selectedSweet);
mainList.setSelector(R.drawable.selecteditem);
btnn2.setBackgroundResource(R.drawable.play);
mp.setOnCompletionListener(new OnCompletionListener(){
@Override public void onCompletion(MediaPlayer mp){
String selectedSweet2 = mainList.getItemAtPosition(position+1).toString();
tv1.setText(selectedSweet2);
//There to play next file
mainlist.setSelection(position+1);
mainList.setSelector(R.drawable.selecteditem);
playSong2(position);
}
});}
private void playSong2(int songIndex)
{
mp.reset();
mp = MediaPlayer.create(getApplicationContext(), resID[songIndex]);
mp.start();
}});
}
public void playSong(int songIndex) {
mp.reset();
mp = MediaPlayer.create(getApplicationContext(), resID[songIndex]);
}
答案 0 :(得分:0)
你的两个问题的答案都是歌曲的结尾不会导致listview索引的任何变化。尝试在歌曲结束时更新列表视图索引。
答案 1 :(得分:0)
首先,“playSong(位置)”的位置值是什么?
它的价值取决于什么位置?