Запускать звук, как только приложение загружается. Приложение для Android.

Я создаю игру, и в ней есть несколько аудиоклипов. Я использую аудиопул, и я использую только 2 аудиоклипа. Оба они формата mp3, один - 700 Кбайт, а другой - 800 байт.

Я пытаюсь воспроизвести аудиоклип размером 700 Кб при первой загрузке игры. Это фоновый звук, который будет повторяться бесконечно, пока приложение открыто. Однако все, что я пробовал, терпит неудачу. Единственный способ заставить его работать - запустить поток при запуске и оставить поток в спящем режиме примерно на 15 секунд. После этого он вызывает начальный звук и воспроизводит его, но если поток будет уничтожен, он убьет звук с его помощью.

Я предполагаю, что звук буферизируется, и поэтому он не воспроизводится при запуске? Кроме того, вы должны делать все аудиозвонки из ветки?


person Dave    schedule 08.01.2011    source источник
comment
Почему вы не опубликовали то, что не работает (код)?   -  person user432209    schedule 08.01.2011


Ответы (1)


Я только что использовал этот код в методе Activity onCreate (), он работает нормально:

public class LaunchActivity extends Activity {
       private MediaPlayer mp;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.whatever);

        setVolumeControlStream(AudioManager.STREAM_MUSIC); 
        mp = MediaPlayer.create(this, R.raw.a);
        mp.start();

    }

Если для этого экземпляра нет инструкций по остановке, он будет продолжать воспроизводиться для всех действий в приложении, и если вы выйдете из приложения, он все равно будет воспроизводиться, и когда вы вернетесь, новый экземпляр начнет воспроизводить старый одновременно ! Медиаплеер - это отдельный процесс, поэтому я думаю, что нет необходимости в другом потоке.

Вы уверены, что с вашим файлом MP3 что-то не так и мешает системе?

person Lumis    schedule 08.01.2011