Looping multiple sounds with SoundPool

I am aiming to play and loop multiple sounds at the same time using the soundpool class in java.  I am new at this and it appears I am not able to loop more than one sound at at time.  I can play multiple sounds at the same time but when i set the loop parameter to anything other than zero I am limited to only being able to play one sound at a time.  

Here is the code.

package com.example.poolsoundsample;

import android.media.AudioManager;
import android.media.SoundPool;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

	Button button1;
	SoundPool sp;
	
	Button button2;
	SoundPool sp2;

	int pianoa = 0;
	int pianob = 0;
	
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		sp = new SoundPool(99, AudioManager.STREAM_MUSIC,0);
		pianoa = sp.load(this, R.raw.bassloop2, 1);
		
		 button1 = (Button) findViewById(R.id.button1);
	        button1.setOnClickListener(ButtonClickListener);
		
	        sp2 = new SoundPool(99, AudioManager.STREAM_MUSIC,0);
			pianob = sp2.load(this, R.raw.bassloop3, 1);
			
			 button2 = (Button) findViewById(R.id.button2);
		        button2.setOnClickListener(ButtonClickListener);
	}

	
	private OnClickListener ButtonClickListener = new OnClickListener() {

		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			//if (sound1 != 0)
			//	sp.play(sound1, 1, 1, 0, 0, 1);	
			switch(v.getId()) {
////////////////////////////////Start button 1//////////////////////////
			        case R.id.button1:
				        	if (pianoa != 0){
				        		sp2.play(pianob, 1, 1, 0, -1, 1);}
			        		break;
			        case R.id.button2:
			        	if (pianob != 0){
			        		sp2.play(pianob, 1, 1, 0, -1, 1);}
		        		break;
							}
		}
	};
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}
	}

Open in new window

LVL 1
ForLoop5Asked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

ForLoop5Author Commented:
Do you think I have to do them in different threads?  Is it possible to loop multiple sound pools at once?
0
Member_2_5069294Commented:
Hello ForLoop5. You only require one sound pool to do this. You have created a pool with 99 streams, so it could potentially play 99 sounds simultaneously. You can load both sounds into the same pool and play them looping or otherwise in the same pool.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Java

From novice to tech pro — start learning today.