所以我有一个带有音频文件 ID 的数组。但这取决于用户将有多少个 id(他键入“a”并且 R.raw.a 出现在数组中)。如何使用 MediaPlayer 一个接一个地播放这些声音。我想我应该使用 OnCompletionListener,但我不知道数组中有多少声音 id。我应该使用
for(){}
所以我有一个带有音频文件 ID 的数组。但这取决于用户将有多少个 id(他键入“a”并且 R.raw.a 出现在数组中)。如何使用 MediaPlayer 一个接一个地播放这些声音。我想我应该使用 OnCompletionListener,但我不知道数组中有多少声音 id。我应该使用
for(){}
你能做的是
//define a variable to be used as index.
int audioindex = 0;
//Extract the files id into an array
int[] audioFileIds=new int[]{R.raw.as,R.raw.bs};
然后在你MediaPlayer
onCompletionListener
放的东西如下。
然后在您的 OnCompletionListener 中。
mp.setOnCompletionListener(new OnCompletionListener(){
// @Override
public void onCompletion(MediaPlayer player) {
// File has ended, play the next one.
FunctionPlayFile(audioFileIds[audioindex]);
audioindex+=1; //increment the index to get the next audiofile
}
});
您可以为 OnCompletionListener 设置 MediaPlayer
public class MyActivity extends Activity
implements MediaPlayer.OnCompletionListener {
MediaPlayer player = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
player = new MediaPlayer();
player.setOnCompletionListener(this);
...
}
@Override
public void onCompletion(MediaPlayer mp) {
// Called when playback is complete
//Play a next song
...
}
}
欢迎!
使用 IntentService 播放歌曲。所有使用intentservice开始的歌曲都将在队列中。它会一个接一个地播放。