このコードの問題は、すべてのオーディオファイルが同時に再生されることです。 EDITTEXTで入力したものに基づいて計算された曲を演奏するアプリケーションを作成しようとしています。私はそれが歌のように演奏するように、後続の音符を一定の時間量だけ遅らせる方法が必要です。もっと多くのcase文を使わなくてもこれを行う方法はありますか?アンドロイドスタジオでオーディオの遅延を設定するにはどうすればいいですか?
私のJavaコード:
public class MainActivity extends Activity {
EditText edit;
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edit = (EditText) findViewById(R.id.box);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String string = edit.getText().toString();
char arr[]=string.toCharArray();
for(int i=0;i<arr.length;i++){
switch (arr[i]) {
case 'a':
MediaPlayer mp = MediaPlayer.create(getApplicationContext(), sample);
mp.start();
break;
case 'b':
MediaPlayer mp1 = MediaPlayer.create(getApplicationContext(), sample1);
mp1.start();
break;
case 'c':
MediaPlayer mp2 = MediaPlayer.create(getApplicationContext(), sample2);
mp2.start();
break;
case 'd':
MediaPlayer mp3 = MediaPlayer.create(getApplicationContext(), sample3);
mp3.start();
break;
case 'e':
MediaPlayer mp4 = MediaPlayer.create(getApplicationContext(), sample4);
mp4.start();
break;
case 'f':
MediaPlayer mp5 = MediaPlayer.create(getApplicationContext(), sample5);
mp5.start();
break;
case 'g':
MediaPlayer mp6 = MediaPlayer.create(getApplicationContext(), sample6);
mp6.start();
break;
case 'h':
MediaPlayer mp7 = MediaPlayer.create(getApplicationContext(), sample);
mp7.start();
break;
case 'i':
MediaPlayer mp8 = MediaPlayer.create(getApplicationContext(), sample1);
mp8.start();
break;
case 'j':
MediaPlayer mp9 = MediaPlayer.create(getApplicationContext(), sample2);
mp9.start();
break;
case 'k':
MediaPlayer mp10 = MediaPlayer.create(getApplicationContext(), sample3);
mp10.start();
break;
case 'l':
MediaPlayer mp11 = MediaPlayer.create(getApplicationContext(), sample4);
mp11.start();
break;
case 'm':
MediaPlayer mp12 = MediaPlayer.create(getApplicationContext(), sample5);
mp12.start();
break;
case 'n':
MediaPlayer mp13 = MediaPlayer.create(getApplicationContext(), sample6);
mp13.start();
break;
case 'o':
MediaPlayer mp14 = MediaPlayer.create(getApplicationContext(), sample);
mp14.start();
break;
case 'p':
MediaPlayer mp15 = MediaPlayer.create(getApplicationContext(), sample1);
mp15.start();
break;
case 'q':
MediaPlayer mp16 = MediaPlayer.create(getApplicationContext(), sample2);
mp16.start();
break;
case 'r':
MediaPlayer mp17 = MediaPlayer.create(getApplicationContext(), sample3);
mp17.start();
break;
case 's':
MediaPlayer mp18 = MediaPlayer.create(getApplicationContext(), sample4);
mp18.start();
break;
case 't':
MediaPlayer mp19 = MediaPlayer.create(getApplicationContext(), sample5);
mp19.start();
break;
case 'u':
MediaPlayer mp20 = MediaPlayer.create(getApplicationContext(), sample6);
mp20.start();
break;
case 'v':
MediaPlayer mp21 = MediaPlayer.create(getApplicationContext(), sample);
mp21.start();
break;
case 'w':
MediaPlayer mp22 = MediaPlayer.create(getApplicationContext(), sample2);
mp22.start();
break;
case 'x':
MediaPlayer mp23 = MediaPlayer.create(getApplicationContext(), sample3);
mp23.start();
break;
case 'y':
MediaPlayer mp24 = MediaPlayer.create(getApplicationContext(), sample4);
mp24.start();
break;
case 'z':
MediaPlayer mp25 = MediaPlayer.create(getApplicationContext(), sample5);
mp25.start();
break;
case ' ':
MediaPlayer mp26 = MediaPlayer.create(getApplicationContext(), sample6);
mp26.start();
break;
}
私は、彼らが同時にプレーいけないように、私は、複数のオーディオファイルはすべて、ある時点で遅延持つことができるようになる機能が欲しいです。ありがとう!
次のオーディオを再生できない。 –
これは、文字 "b"を再生できるようにします。そして、シリーズの次のキャラクターは、それが何であるかにかかわらず、以前のものに続いて、準備され演奏されることが欲しい。 –
答えを編集しました。このコードは、完成後に複数のオーディオを順番に再生します。 P.S問題が突然一ヶ月以上後にポップアップしたことを驚かせた。 – Abhi