//this is inside onCreate function
//layoutRost is declared as private, inside onCreate is initialized, also speak_rost...
layoutRost.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
speak_rost.start();
speak_rost.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
speak_rost.release();
}
});
}
});
First time I press it, the button & audio works well, second time I get the error: Open app again
It's been a while since I last touched Android, I created my own method for playing sounds and it worked fine considering I published an app, so maybe it would help
//method that plays a sound effects
public void playMedia(int resid){
mediaPlayer = MediaPlayer.create(this,resid);
mediaPlayer.start();
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
mp.release();
}
});
}
Every time there was something to play I would pass the id of the resource to this method
//just initialize inside ClickListener, speak_rost, and after .setOnCompletionListener, I put speak_rost().start; that was ALL, very nice problem, now all my 50+ buttons/layouts are "in the right form" to play 100+ time, every time I needed. Thank you.
layoutRost.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
speak_rost = MediaPlayer.create(hundred.this, R.raw.asa);
speak_rost .setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mysound) {
mysound.release();
}
});
speak_rost .start();
}
});
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.