Como reproduzir arquivos mp3 de cartão SD interno e externo no android?

Estou trabalhando em um aplicativo de mp3 player, que reproduz arquivos .mp3 presentes em qualquer lugar dentro de um cartão SD interno.

Eu usei os seguintes códigos para buscar os arquivos .mp3 presentes no armazenamento interno.

ArrayList<File> inFiles = new ArrayList<File>();
File list[] = file.listFiles();
//Log.i("DIR", "PATH" +file.getPath());
for (int i = 0; i < list.length; i++) 
{
    // myList.add( list[i].getName() );
    File temp_file = new File(file.getAbsolutePath(),list[i].getName());
    //Log.i("DIR", "PATH" +temp_file.getAbsolutePath());
    if (temp_file.listFiles() != null) 
    {
        //Log.i("inside", "call fn");
        listfiles(temp_file);

    }
    else 
    {
        if (list[i].getName().toLowerCase().contains(".mp3"))
        {
            inFiles.add(list[i]);
        //Log.e("Music", list[i].getName());
        }
    }
}

Como eu também recebo os arquivos .mp3 do cartão SD externo também?

questionAnswers(5)

yourAnswerToTheQuestion