Как я должен кэшировать аудио файл в Java (используя JLayer)? - PullRequest
1 голос
/ 20 декабря 2010

Я разрабатываю приложение, которое требует использования звуковых файлов (в данный момент через аудиобиблиотеку JLayer), и мне интересно, можно ли кэшировать файл в памяти, чтобы его не нужно было считывать жесткого диска каждый раз, когда это необходимо.

Например, я могу хранить изображение в объекте BufferedImage вместо вызова ImageIO.read каждый раз, когда мне нужно изображение; Есть ли подобный способ подойти к этому с помощью JLayer? Должен ли я использовать другую аудио библиотеку? Я просто не хочу ударять по диску каждый раз, когда пользователь запускает звук (потенциально много раз в секунду).

Если это имеет значение, звук в формате MP3.

1 Ответ

2 голосов
/ 20 декабря 2010

Вы можете прочитать любой файл (до определенного размера) в байт [] и обработать его оттуда.

Абстракция Java InputStreams (когда потребителю не нужно знать, откуда поступают данные) должна сделать это очень просто (при условии, что ваша аудио библиотека не жестко запрограммирована для чтения из файлов).

Начните с поиска ByteArrayOutputStream и ByteArrayInputStream .

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