Возникли проблемы при воспроизведении mp3 файлов в Android - PullRequest
2 голосов
/ 22 сентября 2011

У меня возникают проблемы при воспроизведении аудио (mp3) файлов, эти музыкальные файлы похожи на звуки щелчков, они находятся в необработанной папке, проблема в том, что если много щелчков через случайные промежутки времени, возникает исключение nullPointer.Это происходит в любом месте, когда щелчок сделан, и в любое время, связано ли это с проблемой памяти или проблемой, связанной с MediaPlayer, пожалуйста, любое предложение будет оценено.Это простой медиаплеер, который я вызываю, но это игра, так что на ощупь он воспроизводит файлы, поэтому в игре у меня есть много вещей, которые нужно перетащить, поэтому я хочу звук щелчка в это время, иногда он работает нормально, но когда превышает определенный предел, онгенерирует исключения нулевого указателя.это код:

   MediaPlayer mp= MediaPlayer.create(context,R.raw.soun1);
   mp.start();

вот это:

Ответы [ 4 ]

1 голос
/ 11 мая 2013

Для воспроизведения медиаплеера ... нам нужны два класса ... предположим, mainactivity.java - это наш первый файл ... здесь мы определяем две кнопки - start_button & stop_button

mButton_start.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        Intent mIntent=new Intent(MainActivity.this,maservice.class);
        startService(mIntent);

    }
});
mButton_stop.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        Intent mIntent=new Intent(MainActivity.this,maservice.class);
        stopService(mIntent);

    }
});

maservice.java - наш другой файл Java.Здесь мы определяем медиаплеер, а также должно быть 3 метода: onCreate (), onStart (), onDestroy ().

Вот код:

MediaPlayer mPlayer;
@Override
public void onCreate()
{
    super.onCreate();
    mPlayer=MediaPlayer.create(this, R.raw.kyun);
    mPlayer.setLooping(true);
}
@Override
public void onStart(Intent miIntent, int startid)
{
    super.onStart(miIntent, startid);
    mPlayer.start();

}

@Override
public void onDestroy()
{
    super.onDestroy();
    mPlayer.stop();
}

Мы также должны определитьэти java-файлы в файле манифеста

  • mainactivity.java определены в теге активности
  • , но maservice.java определен в теге службы
1 голос
/ 22 сентября 2011

просто попробуйте это ::

MediaPlayer mp = new MediaPlayer();
    mp= MediaPlayer.create(this,R.raw.soun1);
    mp.start();

разрешение в файле манифеста :::

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
0 голосов
/ 16 мая 2012

Проблема связана с кодировкой MP3.Я пытался с тем же кодом, мало работаю, а немногие нет.Поэтому, пожалуйста, попробуйте другой, если в следующий раз появится та же ошибка.

0 голосов
/ 23 сентября 2011

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

...