Click here to Skip to main content
15,896,111 members

Comments by Member 10948350 (Top 2 by date)

Member 10948350 15-Jul-14 14:00pm View    
Sorry, your solution doesn't help me. I'm not talking about getting a set of files from a directory.
Member 10948350 15-Jul-14 13:34pm View    
I've tried this, but the problem is it works fine on the initial loop, but after that it mixes the tracks up or skip tracks...Weird, huh???

Here is the code:

public class OneExp extends ActionBarActivity {

private ListView lv;
private ArrayAdapter<string> arrayAdapter;
private MediaPlayer mp;
private MediaPlayer mp2;
int[] myAudio = {R.raw.e_1101, R.raw.e_1102, R.raw.e_1103, R.raw.e_1104, R.raw.e_1105,
R.raw.e_1106, R.raw.e_1107, R.raw.e_1108, R.raw.e_1109, R.raw.e_1110, R.raw.e_1111};
int mCompleted = 0;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.one_exp);

Button btnLoop = (Button) findViewById(R.id.button1);
Button btnStop = (Button) findViewById(R.id.button2);

btnStop.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (mp2 != null) {

if (mp2.isPlaying()) {
mp2.stop();

}
mp2.reset();
mp2.release();
mp2 = null;
}
}
});

btnLoop.setOnClickListener(new OnClickListener() {



@Override
public void onClick(View arg0) {

mp2 = MediaPlayer.create(getBaseContext(), myAudio[0]);
mp2.setOnCompletionListener(new OnCompletionListener()
{
@Override
public void onCompletion(MediaPlayer mp2)
{
mCompleted++;
mp2.reset();
if (mCompleted < myAudio.length)
{
try
{
AssetFileDescriptor afd = getResources().openRawResourceFd(myAudio[mCompleted]);
if (afd != null)
{
mp2.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
afd.close();
mp2.prepare();
mp2.start();
}
}
catch (Exception ex)
{
ex.printStackTrace();
}

}
else if (mCompleted == myAudio.length)
{
mCompleted =0;
try
{
AssetFileDescriptor afd = getResources().openRawResourceFd(myAudio[mCompleted]);
if (afd != null)
{
mp2.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
afd.close();
mp2.prepare();
mp2.start();
}
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
else
{
mCompleted=0;
mp2.release();
mp2 = null;
}

}
});


mp2.start();

}

});