2014-09-01 5 views
0

Мгновенно у меня в LogCat «Ошибка медиаплеер (-19,0)» после повторных игр. Итак, в первый раз, когда я играю в своем приложении, все в порядке, но через некоторое время звук больше не работает.Как выпустить Android MediaPlayer?

public TextView tw; 
MediaPlayer mpButtonKlick; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.app); 


    tw = (TextView)findViewById(R.id.Text); 

    tw.setOnClickListener(this); 

    mpButtonKlick = MediaPlayer.create(this, R.raw.sound); 




@Override 
public void onClick(View v) { 
    // TODO Auto-generated method stub 

    mpButtonKlick.start(); 
+0

http://developer.android.com/guide/topics/media/mediaplayer.html –

+1

mediaPlayer.release(); mediaPlayer = null; –

+0

Непосредственно после «mpButtonKlick.start();? – Knacks

ответ

1

отпускание так:

mpButtonKlick.release(); 
mpButtonKlick = null; 

Это хорошая практика, чтобы также освободить объект MediaPlayer, когда вы начинаете играть новые средства массовой информации, чтобы убедиться, что есть только один экземпляр работает.

private void stopMedia(){ 
    mpButtonKlick.release(); 
    mpButtonKlick = null; 
} 

и когда вы звоните start() убедитесь, что первый вызов stopMedia();

stopMedia(); 
mpButtonKlick.start(); 
+0

Большое спасибо. Где я должен положить его в код? – Knacks

+0

В обработчике щелчков кнопок воспроизведения и остановки для вашего медиаплеера? Как бы вы в противном случае справились медиа-плеер? – Michael

1

Попробуйте этот.

protected void onStop() 
{ 
    mediaPlayer.release(); 
    mediaPlayer = null; 
} 
+0

Thx. Это не сработало. Мое приложение перестало работать с этим очень скоро ...?! – Knacks

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