В моем проекте есть 2 аудиофайла, «dog.mp3» и «cat.mp3», и поэтому приведенный ниже код позволяет мне воспроизводить звук на основе отдельных кликов элемента списка, однако как я могу изменить код, чтобы я хотел достичь следующего:Воспроизведение звука при каждом нажатии кнопки
- Когда играет «cat.mp3», если я коснусь элемента списка для «dog.mp3», я хочу файл «cat.mp3» для остановки воспроизведения и звука «dog.mp3» для воспроизведения.
- Когда играет «dog.mp3», если я коснусь элемента списка для «cat.mp3», я хочу, чтобы файл «dog.mp3» прекратил воспроизведение и звук «cat.mp3» для воспроизведения.
Вся помощь будет оценена по достоинству.
mainList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
if (position == 0) {
mp = MediaPlayer.create(Test.this, R.raw.cat);
mp.start();
}
if (position == 1) {
mp = MediaPlayer.create(Test.this, R.raw.dog);
mp.start();
}
}
});
ОШИБКА
import android.media.MediaPlayer;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MainActivity extends ActionBarActivity {
ListView mainList;
String[] listContent = {
"chimes", "chord", "ding",
"notify", "recycle", "ringin",
"ringout", "tada"
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mainList = (ListView)findViewById(R.id.main_listView);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,listContent);
mainList.setAdapter(adapter);
int[] resID = { R.raw.chimes, R.raw.chord, R.raw.ding,
R.raw.notify, R.raw.recycle, R.raw.ringin, R.raw.ringout, R.raw.tada };
mainList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
playSong(position);
}
});
public void playSong(int songIndex) {
// Play song
mp.reset();
mp.setDataSource(resID[songIndex]);
mp.start();
mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
// TODO Auto-generated method stub
mp.release();
}
});
}
}
}
У меня по-прежнему возникают ошибки после использования вашего кода. Проверьте скриншот и обновленный код выше. – MacaronLover
Добавьте этот приватный MediaPlayer mp; поверх onCreate() и этого mp = new MediaPlayer(); после setContentView() – chiru
OK. Осталось еще 1 ошибка 'Невозможно разрешить символ 'resID''. – MacaronLover