[英]How to play the audio files directly from res/raw folder?
I have multiple audio files in res\/raw<\/code> folder.
我在
res\/raw<\/code>文件夹中有多个音频文件。
I showing
ListView<\/code> that contains audio files name.
我展示了包含音频文件名的
ListView<\/code> 。
I want to play the corresponding audio file when user select into the
ListView<\/code> .
当用户选择进入
ListView<\/code>时,我想播放相应的音频文件。
I have used
setDataSource(path)<\/code> , but it showing error while playing.
我使用了
setDataSource(path)<\/code> ,但在播放时显示错误。
How play the audio files directly from that folder?
如何直接从该文件夹播放音频文件? Or Is there any other way?
或者有没有其他方法?
"
add this code in onItemClickListener.在 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();
}
});
try this for playing from raw ::试试这个从原始播放 ::
MediaPlayer mPlayer2;
mPlayer2= MediaPlayer.create(this, R.raw.bg_music_wav);
mPlayer2.start();
permission in manifest file ::清单文件中的权限::
<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() .....
}
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();
Hope this may helps you.希望这可以帮助你。
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
}
});
}
To play audio from the raw folder call this method.要从原始文件夹播放音频,请调用此方法。 In my case my file name was notificaion.mp3 :
在我的情况下,我的文件名是notificaion.mp3 :
AudioPlayer().playAudio(mContext, "notificaion")
Here is the AudioPlayer class:这是 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()
}
}
}
Place your audio file in the res/raw folder and call it from the create method of MediaPlayer.将您的音频文件放在 res/raw 文件夹中,并从 MediaPlayer 的 create 方法中调用它。
MediaPlayer.create(this, R.raw.audio_file_name).start();
Eg:例如:
MediaPlayer.create(this, R.raw.sample).start();
var mediaPlayer = MediaPlayer.create(context, R.raw.sound_file_1)
mediaPlayer.start() // no need to call prepare(); create() does that for you
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();
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.