Звучит слишком рано в MediaPlayer :: Android - PullRequest
2 голосов
/ 02 февраля 2011

Хорошо, я боролся с этим какое-то время и у меня есть приложения на звуковой панели, в которых я не сталкивался с этой проблемой. Я разрабатываю виджет, который позволяет воспроизводить звук при нажатии кнопки наwidget.

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

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

    public int onStartCommand(Intent intent, int flags, int startId) {

            /** Get our place holder for quotes & sounds. */
            int s = UpdateService.getQuoteNumber();

            /** Check if a sound is playing if so... stop and reset it. */
            if (mp != null && mp.isPlaying()){mp.stop();mp.reset();}

            /** Create a new mediaplayer and set looping. */
            mp = MediaPlayer.create(this, SoundsClicked.randomSound[s]);
            mp.setLooping(false);

            /** Try to prepare the sound/mediaplayer, if not report error & type. */
            try {mp.prepare();} 
                catch (IllegalStateException e) {e.printStackTrace();Log.e(Integer.toString(s), "IllegalStateException");} 
                catch (IOException e) {e.printStackTrace();Log.e(Integer.toString(s), "IOException");}              

            /** Check if the sound is prepared, if so play it. */
            mp.setOnPreparedListener(new OnPreparedListener() {
                public void onPrepared(MediaPlayer mp) {
                    mp.start();
                    while (mp.isPlaying()) {};
                }
            });
            return flags;}

Это вызывается из службы (очевидно, из onStartCommand), но я решил, что я добавлю это для тех, кто не знаком с некоторыми из методов.

1 Ответ

0 голосов
/ 21 марта 2011

Если вы используете Android 2.2, очевидно, есть некоторые проблемы с MediaPlayer, обрезающим последние X% хотя бы некоторых аудиофайлов. Я столкнулся с этой проблемой с приложением, над которым я сейчас работаю. Я не нашел, есть решение или нет.

...