Ich habe Probleme in meinem Programm mit der Soundpool-Klasse. Ich habe den Soundpool Builder initiiert und meine Sounds ohne Probleme geladen. Ich möchte in der Lage sein, mehrere Togglebuttons zu verwenden, die bestimmte Sounds ein- und ausschalten. Ich bin in der Lage, togglebuttons ein- und auszuschalten, aber zum Beispiel, wenn ich zwei oder mehr togglebuttons anwende und als ich eine Pause mache ..... der Rest wird aufhören. Ich will das nicht, ich möchte, dass die anderen Sounds weiterspielen. Hier ist mein Code. Auch wenn irgendjemand mir helfen kann, es ein wenig aufzuräumen, wäre das hilfreich. Danke im Voraus.Android, Soundpool-Klasse - Autopause Probleme beim Schleifen Sound
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bT1 = (ToggleButton) findViewById(R.id.firstToggle);
bT2 = (ToggleButton) findViewById(R.id.secondToggle);
bT1.setOnClickListener(this);
bT2.setOnClickListener(this);
bT3 = (ToggleButton) findViewById(R.id.thirdToggle);
bT4 = (ToggleButton) findViewById(R.id.fourthToggle);
bT3.setOnClickListener(this);
bT4.setOnClickListener(this);
bT5 = (ToggleButton) findViewById(R.id.fifthToggle);
bT6 = (ToggleButton) findViewById(R.id.sixToggle);
bT5.setOnClickListener(this);
bT6.setOnClickListener(this);
bT7 = (ToggleButton) findViewById(R.id.seventhToggle);
bT8 = (ToggleButton) findViewById(R.id.eighthToggle);
bT7.setOnClickListener(this);
bT8.setOnClickListener(this);
initionalizeSoundpool();
}
private void initionalizeSoundpool() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
AudioAttributes audioAttributes = new AudioAttributes.Builder()
.setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
.setUsage(AudioAttributes.USAGE_MEDIA)
.build();
ourSounds = new SoundPool.Builder()
.setMaxStreams(8)
.setAudioAttributes(audioAttributes)
.build();
soundFx = ourSounds.load(this, R.raw.highhatandrims, 1);
beatOne = ourSounds.load(this, R.raw.technodrums, 1);
soundFx2 = ourSounds.load(this, R.raw.soothing, 1);
beatTwo = ourSounds.load(this, R.raw.thumpohyeahbeat, 1);
soundFx3 = ourSounds.load(this, R.raw.dreamyone, 1);
beatThree = ourSounds.load(this, R.raw.atredundantsynthesis, 1);
soundFx4 = ourSounds.load(this, R.raw.tawaka, 1);
clap = ourSounds.load(this, R.raw.cabessa, 1);
} else {
ourSounds = new SoundPool(4, AudioManager.STREAM_MUSIC,1);
soundFx = ourSounds.load(this, R.raw.highhatandrims, 1);
beatOne = ourSounds.load(this, R.raw.technodrums, 1);
soundFx2 = ourSounds.load(this, R.raw.soothing, 1);
beatTwo = ourSounds.load(this, R.raw.thumpohyeahbeat, 1);
soundFx3 = ourSounds.load(this, R.raw.dreamyone, 1);
beatThree = ourSounds.load(this, R.raw.atredundantsynthesis, 1);
soundFx4 = ourSounds.load(this, R.raw.tawaka, 1);
clap = ourSounds.load(this, R.raw.cabessa, 1);
}
}
public void onClick(View view) {
switch (view.getId()) {
case R.id.firstToggle:
if(bT1.isChecked()) {
ourSounds.play(soundFx, 1, 1, 1, -1, 1);
}
else {
ourSounds.autoPause();
}
break;
case R.id.secondToggle:
if(bT2.isChecked()) {
ourSounds.play(beatOne, 1, 1, 1, -1, 1);
}
else {
ourSounds.autoPause();
}
break;
case R.id.thirdToggle:
if(bT3.isChecked()) {
ourSounds.play(soundFx2, 1, 1, 1, -1, 1);
}
else {
ourSounds.autoPause();
}
break;
case R.id.fourthToggle:
if(bT4.isChecked()) {
ourSounds.play(beatTwo, 1, 1, 1, -1, 1);
}
else {
ourSounds.autoPause();
}
break;
was die Länge einer Sounddatei? –
sie sind kurze Proben, vielleicht 5-10 Sekunden lang. – wth7777