Reproduzir arquivo de áudio do diretório de ativos

Eu tenho o seguinte código:

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

O problema é que, quando executo esse código, ele começa a reproduzir todos os arquivos de áudio no diretório de ativos, em ordem alfabética, em vez de apenas reproduzir o arquivo de áudio solicitado. O que estou fazendo errado? Existe uma maneira melhor de reproduzir arquivos de áudio do diretório de ativos?

Pergunta de acompanhamento: Existe uma diferença entre manter arquivos de áudio no diretório de ativos e mantê-los no diretório res / raw? Além do fato de que eles não obtêm IDs se estiverem no diretório de ativos. Se eu mover os arquivos de áudio para a pasta res / raw, tenho um problema com a reutilizaçãoMediaPlayers porque não há parâmetro de id parasetDataSource(). Não consigo encontrar uma boa orientação para lidar com esse tipo de problema.

questionAnswers(4)

yourAnswerToTheQuestion