Как воспроизвести аудиофайлы прямо из папки res / raw? - PullRequest
29 голосов
/ 21 сентября 2011

У меня есть несколько аудиофайлов в папке res/raw.Я показываю ListView, который содержит имя аудио файла.Я хочу воспроизвести соответствующий аудиофайл, когда пользователь выберет ListView.Я использовал setDataSource(path), но он показывает ошибку во время игры.Как воспроизводить аудиофайлы прямо из этой папки?Или есть другой способ?

Ответы [ 4 ]

52 голосов
/ 21 сентября 2011

добавить этот код в 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();
            }
        });
28 голосов
/ 21 сентября 2011

попробуйте это для воспроизведения из raw ::

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

разрешение в файле манифеста ::

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

Обновление ::

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() .....
}
4 голосов
/ 13 июля 2013
 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


      }
    });
}
4 голосов
/ 21 сентября 2011
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();

Надеюсь, это поможет вам.

...