Media Player播放每个声音文件两次
问题描述:
我希望数据库中的每个声音文件在播放下一个声音文件之前播放两次。Media Player播放每个声音文件两次
这是我的课。
public void startSlides() {
timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
runOnUiThread(new Runnable() {
public void run() {
Intent intent = getIntent();
int setId = intent.getIntExtra("SelectedSetId",0);
databaseAccess.open();
setId = setId + 1;
final List<byte[]> audio = databaseAccess.getAudioA(setId);
if (i > audio.size()){
i = 0;
}else{
playAudio(audio.get(i));
i++;}
List<String> vocab = databaseAccess.getVocabNameA(setId);
textView2.setText(vocab.get(k));
k++;
textView.setText(+j + "/" + vocab.size());
j++;
databaseAccess.close();
if (j == vocab.size() + 1) {
timer.cancel();
}
}
});
}
}, 0, DURATION);
}
我试图调用播放音频方法两次,但它不工作(它只是在同一时间播放相同的文件)。
final List<byte[]> audio = databaseAccess.getAudioA(setId);
//first time
if (i > audio.size()){
i = 0;
}else{
playAudio(audio.get(i));
i++;}
//second time
if (i > audio.size()){
i = 0;
}else{
playAudio(audio.get(i));
i++;}
任何人都有任何建议我应该怎么做?谢谢
答
这样的方式可以帮助你:
private int mPlaybackCount = 0;
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
if(mPlaybackCount < 1){
mPlaybackCount++;
// Play Song again
} else {
mPlaybackCount = 0;
// Play Next Song
}
}
});
+0
嗨,我已经添加到我的playAudio方法,但它仍然无法正常工作。 – chernting
*如何修复我的代码* **是什么破**也许是'playAudio'开始一个新的主题???你需要等待它完成 - 疯狂的猜测! –
@ScaryWombat,我的意思是任何建议我应该怎么做它来播放音频文件两次。 – chernting
我很抱歉,我没有明白你的意思。 – chernting