android: reproduce archivos de audio con un solo objeto de reproductor multimedia y también muestra imágenes

Necesito mostrar imágenes y reproducir los archivos de audio correspondientes uno tras otro.

intenté crear varios objetos de reproductor multimedia pero muestraerror(1, -17)

so por favor ayuda chicos me estoy quedando sin tiempo.

Ahora tengo un controlador que reproduce archivos de audio y luego obtengo la duración de ese archivo de audio mientras reproduzco otro archivo de audio, este es mi enfoque, pero no puedo reproducir algunos archiv

below es mi código de muestra

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);

EDITADO ESTE MI código

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();
                }
            });

Respuestas a la pregunta(2)

Su respuesta a la pregunta