Мне нужно отображать изображения и воспроизводить соответствующие аудиофайлы один за другим.
Я пытался создать несколько объектов медиаплеера, но он показывает error(1, -17)
, так что, плз, помогите, ребята, яне хватает времени.
Сейчас у меня есть обработчик, который воспроизводит аудиофайл, а затем получает продолжительность этого аудиофайла при воспроизведении другого аудиофайла, это мой подход, но я не могу воспроизвести около 10 файлов
ниже приведен мой пример кода
img.setBackgroundResource(R.drawable.d002_p001);
d002_ae_p001 = MediaPlayer.create(this, R.raw.d002_ae_p001);
handler.postDelayed(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
d002_ae_p001.start();
xml();
}
},1000);
d002_ae_p002 = MediaPlayer.create(this,R.raw.d002_ae_p002);
handler.postDelayed(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
i++;
img.setBackgroundResource(R.drawable.d002_p002);
d002_ae_p002.start();
xml();
}
},d002_ae_p001.getDuration()+2000);
РЕДАКТИРОВАТЬ ЭТО МОЙ Код
int image[] = {R.drawable.apple,R.drawable.boy,R.drawable.cat};
String audio[]={"apple_v.mp3","boy_v.mp3","cat_v.mp3"};
MediaPlayer mp = new MediaPlayer();
AssetFileDescriptor descriptor;
try {
descriptor = getAssets().openFd(audio[i]);
mp.setDataSource( descriptor.getFileDescriptor(), descriptor.getStartOffset(),descriptor.getLength());
descriptor.close();
mp.prepare();
mp.start();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mp.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer arg0) {
// TODO Auto-generated method stub
img.setImageResource(image[i]);
i++;
mp.start();
}
});