如何直接从res / raw文件夹中播放audio文件?

res/raw文件夹中有多个audio文件。 我显示包含audio文件名称的ListView 。 当用户select进入ListView时,我想播放相应的audio文件。 我已经使用setDataSource(path) ,但播放时显示错误。 如何直接从该文件夹播放audio文件? 还是有其他方法吗?

Solutions Collecting From Web of "如何直接从res / raw文件夹中播放audio文件?"

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

尝试从原始播放::

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

希望这可以帮助你。