У меня есть 10 кнопок для воспроизведения 10 песен. я хочу достичь, когда я нажимаю ту же кнопку во время игры, она должна быть остановлена. когда я нажимаю другую кнопку, он должен остановить предыдущую песню и воспроизвести новую песню.
, но я не мог достичь обеих вещей, используя тот же код Я пробовал это , когда я использую этот код, the stop won ' t работать на ту же кнопку, но это сработало для другого, играя новую песню.ошибка при использовании кнопки воспроизведения/остановки
private void playSample(int[] res, int position)
{
AssetFileDescriptor afd = getApplicationContext().getResources().openRawResourceFd(res[position]);
try
{ if(mp.isPlaying())
{
mp.stop();
}
mp.reset();
mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getDeclaredLength());
mp.prepare();
mp.start();
afd.close();
}
catch (IllegalArgumentException e)
{
Log.e(TAG, "Unable to play audio queue do to exception: " + e.getMessage(), e);
}
catch (IllegalStateException e)
{
Log.e(TAG, "Unable to play audio queue do to exception: " + e.getMessage(), e);
}
catch (IOException e)
{
Log.e(TAG, "Unable to play audio queue do to exception: " + e.getMessage(), e);
}
}
так я попробовал, как этот
private void playSample(int[] res, int position)
{
AssetFileDescriptor afd = getApplicationContext().getResources().openRawResourceFd(res[position]);
try
{ if(mp.isPlaying())
{
mp.stop();
}else
mp.reset();
mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getDeclaredLength());
mp.prepare();
mp.start();
afd.close();
}
catch (IllegalArgumentException e)
{
Log.e(TAG, "Unable to play audio queue do to exception: " + e.getMessage(), e);
}
catch (IllegalStateException e)
{
Log.e(TAG, "Unable to play audio queue do to exception: " + e.getMessage(), e);
}
catch (IOException e)
{
Log.e(TAG, "Unable to play audio queue do to exception: " + e.getMessage(), e);
}
}
теперь остановка будет работать на той же кнопке .Но когда я нажать другую кнопку во время воспроизведения .it обыкновение начать новую песню
В чем проблема: 1) Определите, какая песня играет в данный момент или 2) Приостановите воспроизводимую в данный момент песню? –
** теперь воспроизведение/пауза будут работать gud. Но когда я нажимаю кнопку во время игры. It wont start.it останавливает предыдущие песни .. ** извините, но не понял? – NetStarter
@NetStarter, когда я нажимаю другую кнопку во время игры .it должен остановить текущую песню и воспроизвести новую песню для этой кнопки. Но она прекратит текущую песню. Не воспроизводит новую песню ... – Asthme