だから私はオーディオファイルIDを持つ配列を持っています。ただし、そこにいくつのIDがあるかはユーザーによって異なります(ユーザーが「a」と入力すると、R.raw.aが配列に表示されます)。MediaPlayer を使用して、このサウンドを次々と再生するにはどうすればよいですか。OnCompletionListener を使用する必要があると思いますが、配列にいくつのサウンド ID が含まれるかわかりません。使うべきか
for(){}
だから私はオーディオファイルIDを持つ配列を持っています。ただし、そこにいくつのIDがあるかはユーザーによって異なります(ユーザーが「a」と入力すると、R.raw.aが配列に表示されます)。MediaPlayer を使用して、このサウンドを次々と再生するにはどうすればよいですか。OnCompletionListener を使用する必要があると思いますが、配列にいくつのサウンド ID が含まれるかわかりません。使うべきか
for(){}
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
...
}
}
いらっしゃいませ!
あなたができることは
//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
}
});
IntentService を使用して曲を再生します。インテントサービスを使用して開始されたすべての曲はキューに入れられます。次から次へと再生されます。