Reproduce archivos de audio desde el directorio de activos

Tengo el siguiente código:

AssetFileDescriptor afd = getAssets().openFd("AudioFile.mp3");
player = new MediaPlayer();
player.setDataSource(afd.getFileDescriptor());
player.prepare();
player.start();

El problema es que, cuando ejecuto este código, comienza a reproducir todos los archivos de audio en el directorio de activos, en orden alfabético en lugar de solo reproducir el archivo de audio que solicité. ¿Qué estoy haciendo mal? ¿Hay una mejor manera de reproducir archivos de audio desde el directorio de activos?

Pregunta de seguimiento: ¿Hay alguna diferencia entre mantener los archivos de audio en el directorio de activos y mantenerlos en el directorio res / raw? Además del hecho de que no obtienen identificadores si están en el directorio de activos. Si muevo los archivos de audio a la carpeta res / raw, entonces tengo un problema con la reutilizaciónMediaPlayers porque no hay un parámetro id parasetDataSource(). No puedo encontrar una buena guía para manejar este tipo de problema.

Respuestas a la pregunta(4)

Su respuesta a la pregunta