Сбой приложения с исключением при использовании javax.microedition.media.Player

У меня есть приложение, которое обрабатывает данные из bluetooth и отправляет их в веб-службу. Недавно был запрос на добавление звуков в приложение. Теперь, когда приложение обрабатывает пакеты данных и проигрыватель постоянно воспроизводится через несколько секунд, я получаю исключение «Приложение не отвечает». И тогда процесс прекращается. В журналах я вижу много исключений ForcedStackTrace, зарегистрированных после этого исключения.

Звуки воспроизводятся в отдельном потоке. Если приложение не воспроизводит звуки или воспроизводит короткие звуки - все работает нормально. Есть ли способ избежать этого исключения? Почему это происходит?

InputStream mediaStream = null;
try {
    mediaStream = getClass().getResourceAsStream(relativePath);
    getLogger().log("setting player _ " + _audioType);
    setPlayer(Manager.createPlayer(mediaStream, _audioType));
    _currentPlayer.addPlayerListener(this);
    _currentPlayer.setLoopCount(1);
    _currentPlayer.realize();
    VolumeControl vc = (VolumeControl) _currentPlayer
            .getControl("VolumeControl");
    if (vc != null) {
        vc.setLevel(_voumeLevel);
    }
    _currentPlayer.prefetch();
    _currentPlayer.start();
} catch (Exception e) {
}

(кросспост с форумов BB)


person Revenge    schedule 22.09.2009    source источник
comment
Не могли бы вы указать точную версию JDE? Как именно вы создаете Player (любые конкретные параметры приветствуются)?   -  person nixau    schedule 22.09.2009
comment
Для компиляции я использую библиотеки JDE 4.0.2. Проект основан на Eclipse.   -  person Revenge    schedule 22.09.2009
comment
Вы всегда можете отредактировать свой вопрос, а также ответить;)   -  person Maksym Gontar    schedule 24.09.2009


Ответы (1)


Решено путем реализации моего собственного PlayerManager, который, работая в отдельном потоке, будет воспроизводить элемент в порядке очереди, а не иметь много потоков, использующих внутреннюю реализацию Player.

person Revenge    schedule 23.09.2009