如何解决android studio-依次播放音频文件
当我按下播放按钮时,我想使用android MediaPlayer逐一播放mp3文件。 当我运行代码时,音频文件同时运行,而不是顺序运行。我猜解决方案应该在onCompletion函数中-仅在最后一个完成后才开始新的mp3文件,但是我尝试了几种方法,但没有用。这是我的代码:
package com.example.PlayerApp;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
MediaPlayer player;
static List<Integer> audio_id_list = new ArrayList<Integer>();;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
audio_id_list.add(R.raw.audio1);
audio_id_list.add(R.raw.audio2);
}
public void play(View v) {
for (int i = 0; i < audio_id_list.size(); i++) {
player = MediaPlayer.create(this,audio_id_list.get(i));
player.setonCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
stopPlayer();
}
});
player.start();
}
}
public void pause(View v) {
if (player != null) {
player.pause();
}
}
public void stop(View v) {
stopPlayer();
}
private void stopPlayer() {
if (player != null) {
player.release();
player = null;
Toast.makeText(this,"MediaPlayer released",Toast.LENGTH_SHORT).show();
}
}
@Override
protected void onStop() {
super.onStop();
stopPlayer();
}
}
''
解决方法
尝试一下
int i = 0;
public void play(View v) {
player = MediaPlayer.create(this,audio_id_list.get(i));
player.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
stopPlayer();
if(i < audio_id_list.size()) {
i++;
play(v);
}
}
});
player.start();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。