Android Media Player локальный объект много разных звуков я должен выпустить? - PullRequest
0 голосов
/ 16 февраля 2012

за одно занятие у меня 5 кнопок.Каждая из этих кнопок издает разные звуки.Я делаю для каждого метода buttonClicked:

MediaPlayer mp = MediaPlayer.create (this, R.raw.click);if (mp! = null) mp.start ();

MediaPlayer mp = MediaPlayer.create (this, R.raw.click2);if (mp! = null) mp.start ();

и т. д.

- это правильный способ сделать это, и мне интересно, поскольку mp является локальным объектом, не так лиумереть, когда метод умирает, поэтому нет необходимости вызывать mp.release ()?

примечание: мои звуки имеют продолжительность 0,5 с или меньше, и они, кажется, завершаются чаще, чем нет (хотя не тестировали на многих устройствах).Я нацеливаюсь на 2,1 +

1 Ответ

0 голосов
/ 16 февраля 2012

Вам необходимо объявить ссылку Mediaplayer на глобальном уровне, назначить объект mediaplayer в onCreate (), а затем нажать кнопку MediaPlayer.create (this / getApplicationContext (), R.Raw.yourfile);следуйте http://developer.android.com/reference/android/media/MediaPlayer.html#StateDiagram

mp.reset();
                mp=MediaPlayer.create(getApplicationContext(),R.raw.hummingbird);
                try {
                    mp.prepare();
                } catch (IllegalStateException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
               mp.start();
...