私は次のコードを持っています:
AssetFileDescriptor afd = getAssets().openFd("AudioFile.mp3");
player = new MediaPlayer();
player.setDataSource(afd.getFileDescriptor());
player.prepare();
player.start();
問題は、このコードを実行すると、要求したオーディオファイルを再生するだけでなく、アセットディレクトリ内のすべてのオーディオファイルをアルファベット順に再生し始めることです。私は何が間違っているのですか?アセットディレクトリからオーディオファイルを再生するためのより良い方法はありますか?
フォローアップの質問:オーディオファイルをassetsディレクトリに保持することとres / rawディレクトリに保持することには違いがありますか?アセットディレクトリにある場合はIDを取得しないという事実に加えて。オーディオファイルをres/rawフォルダーに移動すると、MediaPlayer
のidパラメーターがないため、sの再利用に問題がありますsetDataSource()
。この種の問題に対処するための適切なガイドラインが見つかりません。