2009-09-22 3 views
1

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

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

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) { 
} 

(crossposted из форумов BB)

+0

Не могли бы вы указать точную версию JDE? Как именно вы создаете Player (любые специальные параметры приветствуются)? – nixau

+0

Я использую библиотеки JDE 4.0.2 для компиляции. Проект основан на Eclipse. – Revenge

+0

Вы всегда можете отредактировать свой вопрос и ответить;) –

ответ

2

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