我有用於播放10首歌曲的10個按鈕。我想實現當我在播放時按下相同的按鈕,它應該停止。當我按另一個按鈕它應該停止前一首歌曲,播放新歌..
但我不能使用相同的代碼實現這兩個事情 我試過了 當我使用此代碼,停止贏得' 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);
}
}
現在停止會爲同一按鈕的工作。但,當我按下另一個按鈕,而玩。它不會啓動新的歌曲
究竟是什麼問題:1)找出哪首歌正在播放或2)暫停正在播放的歌曲? –
**現在播放/暫停將工作gud。但是當我按下按鈕,同時播放。它不會start.it停止以前的歌曲.. **抱歉,但沒有得到這個? – NetStarter
@NetStarter當我在播放時按下另一個按鈕時,它應該停止播放當前歌曲並播放該歌曲的新歌曲。但它會停止當前歌曲。不播放新歌曲... – Asthme