2014-12-16 3 views
-1

Я делаю и приложение, в котором вы нажимаете кнопки для воспроизведения звука. Кажется, он работает сначала, но после нажатия 5-6 он перестает воспроизводить звуки. Вот мой кодМедиаплеер не работает должным образом

public class MainActivity extends ActionBarActivity { 


private ImageButton pad1, pad2, pad3, pad4, pad5, pad6, pad7, pad8, pad9, pad10, pad11, pad12; 

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

    pad1 = (ImageButton) findViewById(R.id.pad1); 
    pad2 = (ImageButton) findViewById(R.id.pad2); 
    pad3 = (ImageButton) findViewById(R.id.pad3); 
    pad4 = (ImageButton) findViewById(R.id.pad4); 
    pad5 = (ImageButton) findViewById(R.id.pad5); 
    pad6 = (ImageButton) findViewById(R.id.pad6); 
    pad7 = (ImageButton) findViewById(R.id.pad7); 
    pad8 = (ImageButton) findViewById(R.id.pad8); 
    pad9 = (ImageButton) findViewById(R.id.pad9); 
    pad10 = (ImageButton) findViewById(R.id.pad10); 
    pad11 = (ImageButton) findViewById(R.id.pad11); 
    pad12 = (ImageButton) findViewById(R.id.pad12); 


} 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    return true; 
} 



    public void onPad1Click(View view) { 
     MediaPlayer mp = MediaPlayer.create(this, R.raw.p1); 
     mp.start(); 
    } 

public void onPad2Click(View view) { 
    MediaPlayer mp = MediaPlayer.create(this, R.raw.p2); 
    mp.start(); 
} 

public void onPad3Click(View view) { 
    MediaPlayer mp = MediaPlayer.create(this, R.raw.p3); 
    mp.start(); 

} 

public void onPad4Click(View view) { 

    MediaPlayer mp = MediaPlayer.create(this, R.raw.p4); 
    mp.start(); 
} 

public void onPad5Click(View view) { 
    MediaPlayer mp = MediaPlayer.create(this, R.raw.p5); 
    mp.start(); 
} 

public void onPad6Click(View view) { 
    MediaPlayer mp = MediaPlayer.create(this, R.raw.p6); 
    mp.start(); 
} 

public void onPad7Click(View view) { 
    MediaPlayer mp = MediaPlayer.create(this, R.raw.p7); 
    mp.start(); 
} 

public void onPad8Click(View view) { 
    MediaPlayer mp = MediaPlayer.create(this, R.raw.p8); 
    mp.start(); 
} 

public void onPad9Click(View view) { 
    MediaPlayer mp = MediaPlayer.create(this, R.raw.p9); 
    mp.start(); 
} 

public void onPad10Click(View view) { 
    MediaPlayer mp = MediaPlayer.create(this, R.raw.p10); 
    mp.start(); 
} 

public void onPad11Click(View view) { 
    MediaPlayer mp = MediaPlayer.create(this, R.raw.p11); 
    mp.start(); 
} 

public void onPad12Click(View view) { 
    MediaPlayer mp = MediaPlayer.create(this, R.raw.p12); 
    mp.start(); 
} 
} 

я не знаю, что это может быть звуки очень коротка, поэтому я не думаю, что это проблема. Надеюсь, кто-то может помочь в этом. Спасибо!

+0

возможный дубликат ошибки [Mediaplayer error, используемой несколько раз] (http://stackoverflow.com/questions/16509969/mediaplayer-error-once-used-multiple-times) –

+0

Я добавил mp.release(); после mp.start(); но теперь он даже не воспроизводит звук. Есть идеи ? – Ivaylo

ответ

0

Я бы рекомендовал использовать SoundPool вместо MediaPlayer для короткого воспроизведения.

Добавить следующие переменные:

SoundPool soundPool = null; 
int sound1_id; 
int sound2_id; 

Добавить в свой OnCreate() - метод (вместо MediaPlayer):

soundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0); 
sound1_id = soundPool.load(this, R.raw.p1, 1); 
sound2_id = soundPool.load(this, R.raw.p2, 1); 

и на конкретном OnClick():

soundPool.play(sound1_id, (float) 0.5, (float) 0.5, 1, 0, 1.f); 
+0

Спасибо, я попробую – Ivaylo

+0

Удачи. Это также лучше в производительности, чем MediaPlayer. – Xry

+0

Спасибо вам большое! Это сработало. У меня есть еще одна проблема, которая не связана с этим, если каким-то образом вы знаете, как ее исправить, это будет потрясающе. Поэтому мне нужно изменить размеры кнопок для разных размеров экрана, и я устанавливаю android: вес в каждой кнопке, и это работает для ширины, но не для высоты. если вы как-то знаете, что будьте очень благодарны. :) – Ivaylo

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