2013-09-30 8 views
0

Я добавил два изображения в свою активность и нажимаю, каждый должен воспроизводить разные звуки. Но когда я нажимаю на любую кнопку, звук не воспроизводится, и в журнале отображается ошибка.Ошибка при воспроизведении звука нажатием одной кнопки

LogCat ОШИБКА

09-30 15:19:07.436: D/dalvikvm(477): GC_EXTERNAL_ALLOC freed 629 objects/50520 bytes in 180ms 
09-30 15:19:10.226: E/MediaPlayer(477): start called in state 1 
09-30 15:19:15.276: E/MediaPlayer(477): start called in state 1 

Вот кусок кода, который я написал,

import android.media.MediaPlayer; 

public class MainActivity extends Activity { 


MediaPlayer mp; 
ImageButton iV1,iV2; 

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


    iV1 = (ImageButton)findViewById(R.id.iV1); 
    iV2 = (ImageButton)findViewById(R.id.iV2); 
    mp = MediaPlayer.create(this, R.raw.bud); 
    mp = MediaPlayer.create(this, R.raw.classic); 

iV1.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View arg0) { 
     mp = new MediaPlayer(); 
     mp.prepare(); 

     mp.start(); 

    }}); 

iV2.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View arg0) { 

     mp = new MediaPlayer(); 
     mp.prepare(); 
     mp.start(); 

    }}); 

    } 
} 

Пожалуйста, помогите мне в этом. Любая помощь будет оценена. Я новичок в этой среде Android.

Заранее спасибо.

ответ

1

Здесь есть пара проблем. Во-первых, вы создаете новый объект MediaPlayer каждый раз при нажатии кнопки. Вы должны удалить эти строки:

mp = new MediaPlayer(); 
mp1 = new MediaPlayer(); 

Вы уже создали объекты, используя статический метод create.

Кроме того, как уже упоминалось, вам нужно позвонить подготовиться, прежде чем звонить начать:

mp.prepare(); 
mp.start(); 
0

Легко попасть в неприятности при использовании MediaPlayer для кнопки-звуков, особенно с большим количеством кнопок. Я описал решение с использованием SoundPool здесь: How to Play sound when button is clicked in Android?

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