使用Android MediaPlayer同时播放3个音频
我正在尝试播放3个音频宽度的Android,但不是同时播放,我的代码是下一个:使用Android MediaPlayer同时播放3个音频,android,audio,android-mediaplayer,media,Android,Audio,Android Mediaplayer,Media,我正在尝试播放3个音频宽度的Android,但不是同时播放,我的代码是下一个: for (Word w : wordsList){ String path = Parameters.PATH_AUDIO + "/" + w.getAudioPath(); Uri audioPath = Uri.parse(path); MediaPlayer a
for (Word w : wordsList){
String path = Parameters.PATH_AUDIO + "/" + w.getAudioPath();
Uri audioPath = Uri.parse(path);
MediaPlayer audio1 = MediaPlayer.create(context, audioPath);
audio1.start();
}
但所有的音频至少开始同时播放。我需要一些类似于<代码> Audio1.WaIT()/<代码>或“代码> Audio1.睡眠>代码>或类似的人。 < p>您可能需要考虑使用StasOpTraceTeNeListNER:
audio1.setOnCompletionListener(new MediaPlayer.OnCompletionListener(){
public void onCompletion(MediaPlayer player) {
//do something when audio is finished
}});
下面是一个例子(尽管没有机会尝试):
在类级别中标记这些:
int index = 0;
MediaPlayer audio1;
然后:
try {
audio1 = MediaPlayer.create(this, Uri.parse(yourList.get(index)));
audio1.start();
index++;
audio1.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer player) {
if (index < yourList.size()) {
audio1.reset();
audio1 = MediaPlayer.create(MainActivity.this,
Uri.parse(yourList.get(index)));
audio1.start();
index++;
}
else
{
//release it
}
}
});
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
试试看{
audio1=MediaPlayer.create(这个Uri.parse(yourList.get(index));
audio1.start();
索引++;
audio1.setOnCompletionListener(新的MediaPlayer.OnCompletionListener(){
完成后的公共作废(MediaPlayer){
如果(索引
我正在使用onCompletion,但我不知道我必须在您的评论行中添加什么,我不必什么都不做,只需在每个音频之间等待大约2秒。只需在前一个音频完成后播放下一个音频。如果您只想等待2秒,可以使用带有postDelayed的处理程序。请告诉我一个快速示例,我的头被锁住了!