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 ?

59voto

ilango j Points 3314

Ajouter ce code dans le onItemClickListener.

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();
            }
        });

34voto

Nik Patel Points 6991

Essayez ceci pour jouer à partir d'un fichier brut : :

MediaPlayer mPlayer2;
mPlayer2= MediaPlayer.create(this, R.raw.bg_music_wav);
        mPlayer2.start();

permission dans le fichier manifeste : :

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

Mise à jour : :

public void onItemClick(AdapterView<?> arg0, View view, int position,long id) {     
  MediaPlayer mPlayer2;
if(position==1)
{
    mPlayer2= MediaPlayer.create(this, R.raw.song1);
            mPlayer2.start();
}else it() .....
}

6voto

Richa Points 2034
mVideoView = (VideoView) findViewById(R.id.Video_FrontPage);
uri = Uri.parse("android.resource://com.urPackageName/" + R.raw.welcom_video);
mVideoView.setVideoURI(uri);
mVideoView.setMediaController(new MediaController(this));
mVideoView.requestFocus();
mVideoView.start();

4voto

Asthme Points 561
 lv.setOnItemClickListener(new OnItemClickListener() {
      public void onItemClick(AdapterView<?> parent, View view,
          int position, long id) {

          // selected item 
          String product = ((TextView) view).getText().toString();

          int [] resID= {R.raw.sound1,R.raw.sound2,R.raw.sound3};
        MediaPlayer mediaPlayer=MediaPlayer.create(this,resID[position]);

          mediaPlayer.start();
          // sending data to new activity

      }
    });
}

2voto

Majid Sadeghi Points 21
var mediaPlayer = MediaPlayer.create(context, R.raw.sound_file_1)
mediaPlayer.start() // no need to call prepare(); create() does that for you

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