Проблема воспроизведения звука на Android - PullRequest
2 голосов
/ 21 февраля 2010

Поправка: Похоже, это проблема с конкретным аудиофайлом, который я использовал. Другие приложения на дроиде, такие как файловый менеджер Astro, также не воспроизводят его, и если я заменю его в пакете на файл AAC, он воспроизводит его без ошибок. Я зашифровал проблемный аудиофайл в формат MP3 из файла WAV, используя LAME в Ubuntu. Было бы неплохо узнать об ограничениях андроид-медиаплеера. Кажется, у mplayer нет проблем с воспроизведением файла в Ubuntu. Я полагаю, я должен представить отчет об ошибке.

Оригинальный вопрос: Следующий код вылетает при попытке воспроизвести его на моем дроиде. Сообщение об ошибке, указанное в журнале: «Command PLAYER_INIT completed with an error or info PVMFErrNoResources.». Затем в строке mp.prepare() возникает IOException. В моем каталоге проекта есть файл res/raw/bell.mp3, который, как я полагаю, соответствует R.raw.bell в приведенном ниже коде. Я строю с "ant debug". В случае, если это уместно, когда я создал каталог проекта с «android create», я установил целевой номер 4, соответствующий в моей системе «android 2.0».

Что я делаю не так, здесь?

    import java.io.IOException;
    import android.app.Activity;
    import android.os.Bundle;
    import android.media.MediaPlayer; 
    import android.util.Log;

    public class testapp extends Activity 
    {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) 
        {
            super.onCreate(savedInstanceState);
     try {
         MediaPlayer mp = MediaPlayer.create(this, R.raw.bell);
         mp.prepare();
         mp.start();
     } catch (IOException e) {
         Log.v(getString(R.string.app_name), e.getMessage());
     }
        }

}

1 Ответ

1 голос
/ 21 февраля 2010

Вам не нужно вызывать prepare(), если вы используете статический метод create() для получения MediaPlayer. Это делает prepare() шаг для вас. Вам нужно вызвать prepare(), только если вы используете обычный конструктор MediaPlayer или если вы пытаетесь сбросить клип обратно в начало для воспроизведения из существующего объекта MediaPlayer.

Вот пример проекта для воспроизведения звуков (в моем случае, клип Ogg).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...