播放列表视图中的下一个音频文件
我正在使用媒体播放器从列表视图播放原始文件夹中的音频文件。 一切正常,但我有一个问题。
问题是: 当第一个音频文件结束时,它播放第二个文件,但第二个文件结束时它不播放第三个文件。
有什么问题? 我尝试在mp上添加setOnCompletionListener并重置mp并在(位置+ 1)中播放audion 是真的吗?播放列表视图中的下一个音频文件
我还有一个问题。 当它在列表视图中结束播放第一个项目并开始播放第二个项目时,第一个项目背景仍然着色(蓝色),并且它没有着色第二个项目背景。 有人可以帮我pleaaassseee
这是我的代码
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]);
}
两个你的问题的答案是这首歌的结束不会导致在列表视图索引的任何变化。尝试在歌曲结束时更新列表视图索引。
首先,“playSong(position)”的位置值是多少?
而且它到了什么位置值呢?
它转到列表视图的选定项目的位置, – user5050715
您检查了使用调试器?因为它从0开始,而不是1 – sander338
我不能理解你请每次给我一个代码 – user5050715
好的。但如何在歌曲结束时更新列表视图索引? – user5050715