2012-06-18 2 views
0

сценарий парней - это то, что я нажимаю кнопку, звук воспроизводится и в течение продолжительности этого трека я снова нажимаю кнопку и хочу играть с нее с самого начала. я пробовал со следующим кодом, но не добился успеха. код:играют на одном и том же звуке в андроиде, не дожидаясь окончания до конца.

public class SoundtestActivity extends Activity { 
/** Called when the activity is first created. */ 
MediaPlayer mp; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    mp = MediaPlayer.create(this, R.raw.gun_shot); 
    Button click=(Button) findViewById(R.id.bt1); 
    click.setOnClickListener((new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if(mp.isPlaying()) 
       mp.reset(); 
      mp.start(); 
     } 
    })); 
     } 

}

ответ

0

Вам просто нужно comment следующие строки и shift your Media player instance в метод прослушивателя данной кнопки, лото ваши сделали с несколькими медиа-игроков, играющих параллельно друг другу

Button click=(Button) findViewById(R.id.bt1); 
click.setOnClickListener((new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
    mp = MediaPlayer.create(this, R.raw.gun_shot); // ADD THIS LINE HERE 

     if(mp.isPlaying()){ 
      mp.stop();   //ADDED TO STOP FIRST 
      mp.release();  //ADDED TO RELEASE RESOURCES 
    } 
     mp.start(); 
    } 
})); 
+0

попробовал, что перед сэр , но после нескольких нескольких прикосновений он перестает играть:/ –

+0

может у обеспечить LOG, который когда медиаплеер перестает играть, попробуйте MediaPlayer.create(); один раз в onCreate(), пожалуйста, укажите журнал –

+0

это LOG: 06-18 10: 18: 21.082: E/MediaPlayer (848): error (-19, 0) 06-18 10:18: 21.092: E/MediaPlayer (848): ошибка (-19,0) 06-18 10: 18: 21.282: E/MediaPlayer (848): ошибка (-19, 0) 06-18 10: 18: 21.294: E/MediaPlayer (848): ошибка (-19,0) 06-18 10: 18: 21.462: E/MediaPlayer (848): ошибка (-19, 0)

06-18 10: 18: 21.462: E/MediaPlayer (848): ошибка (-19,0) 06-18 10: 18: 38.636: D/dalvikvm (848): GREF увеличился до 201 06-18 10: 18: 38.662: E/MediaPlayer (848): ошибка (-19, 0) 06-18 10: 18: 38.672: E/MediaPlayer (848): ошибка (-19,0) 06-18 1 0: 18: 38.872: E/MediaPlayer (848): error (-19, 0) –

1

Код:

mp.setOnCompletionListener (новый OnCompletionListener() {

  @Override 
      public void onCompletion(MediaPlayer mp) { 
       mp.release(); 
       mp.start(); 
      } 

     }); 

Или заменить mp.start(); по mp.reset(); в этом коде

1

Лучший способ и самый простой способ = mp.setLooping (true); И да это не работа, просто добавьте эту строку после mp.start() и nothinfg еще требуется

Смежные вопросы