Исследование возможных решений тесно связанной проблемы (то есть, округляя в меньшую сторону вместо), многие из которых значительно быстрее, чем наивный подход, доступно на страница Bit Twiddling Hacks , превосходный ресурс для того, чтобы сделать виды оптимизации, которую Вы ищете. Быстрое решение должно использовать таблицу поиска с 256 записями, которая уменьшает общее операционное количество до приблизительно 7, в среднем от 62 (подобной операционной методологией подсчета) для наивного подхода. Адаптация тех решений Вашей проблемы является вопросом единственного сравнения и инкремента.
J2ME не позволит вам делать это через HTTP. Он загрузит весь звук перед началом воспроизведения. Вместо этого вам нужно разместить его на сервере RTP; только тогда J2ME будет транслировать звук.
Если это бесполезно, то вы можете застрять в поисках устройств, у которых есть собственные проприетарные библиотеки для такого рода вещей.
Нет надежного способа гарантировать, что MIDlet будет передавать аудиоданные, потому что вы не контролируете, как производитель телефона реализовал JSR-135 (спецификация, которая дает вам API для воспроизведения звука в мидлете).
Технически, создание медиаплеера Java с использованием javax.microedition.media.Manager.createPlayer (String aUrl)
должно заставить реализацию JSR-135 передавать аудио данные, расположенные по URL-адресу.
К сожалению, только потоковая передача очень простого аудиоконтента (wav чаще, чем mp3), если таковая имеется, обычно поддерживается через сетевое соединение и, чаще всего, через вызов createPlayer (String aUrl)
вызовет исключение, если URL-адрес не начинается с "file: //"
Вероятно, существуют устройства, в которых производителю удалось подключить более полный аудио / сетевой модуль к реализации JSR-135, но их поиск потребует от вас большого количества испытаний.