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 ?
Réponses
Trop de publicités?
Codemaker
Points
639
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()
}
}
}
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.
- Réponses précédentes
- Plus de réponses