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 de 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 não receberem IDs, se estiverem no diretório de ativos. Se eu mover os arquivos de áudio para a pasta res / raw, tenho um problema ao reutilizar MediaPlayer
s porque não há um parâmetro de identificação para setDataSource()
. Não consigo encontrar uma boa orientação para lidar com esse tipo de problema.