41 votes

Comment lire les fichiers audio directement à partir du dossier res/raw ?

J'ai plusieurs fichiers audio dans res/raw dossier. Je montre ListView qui contient le nom des fichiers audio. Je veux lire le fichier audio correspondant lorsque l'utilisateur sélectionne dans la liste le nom du fichier. ListView . J'ai utilisé setDataSource(path) mais il affiche une erreur pendant la lecture. Comment lire les fichiers audio directement à partir de ce dossier ? Ou y a-t-il un autre moyen ?

1voto

Codemaker Points 639

Placez votre fichier audio dans le dossier res/raw et appelez-le à partir de la méthode create du MediaPlayer.

MediaPlayer.create(this, R.raw.audio_file_name).start();

Eg :

MediaPlayer.create(this, R.raw.sample).start();

0voto

Md Imran Choudhury Points 2536

Pour lire l'audio à partir du dossier brut, appelez cette méthode. Dans mon cas, mon nom de fichier était notificaion.mp3 :

AudioPlayer().playAudio(mContext, "notificaion")

Voici la classe AudioPlayer :

class AudioPlayer {
private var mMediaPlayer: MediaPlayer = MediaPlayer()

private fun stopAudio() {
   try {
       mMediaPlayer.release()
   }catch (ex: Exception){
       ex.printStackTrace()
   }

}

fun playAudio(mContext: Context, fileName: String) {
    try {
        stopAudio()
        mMediaPlayer = MediaPlayer.create(mContext, mContext.resources.getIdentifier(fileName, "raw", mContext.packageName))
        mMediaPlayer.setOnCompletionListener {  stopAudio() }
        mMediaPlayer.start()
    }catch (ex: Exception){
        ex.printStackTrace()
    }

    }
}

0voto

Omer Points 9
listView.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> arg0, View view, int position,long id) {                 
                TextView txtView=(TextView)view.findViewById(R.id.txt_view);
                String fname=txtView.getText().toString().toLowerCase();

                                int resID=getResources().getIdentifier(fname, "raw", getPackageName());

                              MediaPlayer mediaPlayer=MediaPlayer.create(this,resID);
                    mediaPlayer.start();
            }
        });

ajoutez ce code dans le onItemClickListener et une information supplémentaire est que vous ne pouvez pas lire un fichier autre que mp3 et le fichier mp3 doit avoir l'extension originale comme fichier.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X