Загрузка звука перед началом игры в Java ME - PullRequest
2 голосов
/ 16 апреля 2011

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

Как я могу убедиться, что он загружен заранее?

   public class MusicPlayer implements Runnable {

    String sound;
    Player p;

    public MusicPlayer(String sound)
    {
        this.sound = sound;

        InputStream is = getClass().getResourceAsStream("/"+sound);
        try
        {
            p = Manager.createPlayer(is, "audio/X-wav");
        }
        catch(Exception e)
        {}

    }

    public void start()
    {
        Thread t = new Thread(this);
        t.start();
    }

    public void run()
    {
        try
        {
            p.start();
        }
        catch(Exception e)
        {}
    }
}

Ответы [ 4 ]

1 голос
/ 03 мая 2011

Самое надежное решение - создать индикатор выполнения и ждать загрузки звуков, так что это будет немного развлекать пользователя, поскольку он может видеть что-то движущееся

0 голосов
/ 16 апреля 2011

Вы можете добавить задержку I.E Thread.sleep (100); это задержит поток на 100 миллисекунд

0 голосов
/ 03 мая 2011

На всякий случай, если это кому-нибудь нужно, лучший способ, который я нашел, - это на самом деле инициализировать объект в самом потоке Main. Если не самое быстрое, это будет самое надежное решение.

0 голосов
/ 16 апреля 2011

Попробуйте

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