AudioInputStream: любой способ отслеживать количество байтов, прочитанных из исходного потока? - PullRequest
1 голос
/ 31 августа 2011

Я использую mp3spi-1.9.5 и jl-1.0.1 JavaZoom для воспроизведения файлов MP3. Это работает нормально, но у меня возникли небольшие проблемы с отслеживанием "прогресса" потока (измеряется в байтах)

Мне нужно воспроизвести InputStream из удаленного файла, и мне нужно знать, сколько байтов приложение прочитало и «обработало» из исходного потока. Мне не нужно знать, сколько длится поток.

Что я сделал сейчас, так это получил поток с помощью AudioSystem.getAudioInputStream (url). Тем не менее, я считаю, что байты, которые я читаю из этого потока, представляют собой количество «декодированных» / «несжатых» байтов и не отражают реальное количество байтов, прочитанных из потока.

Кто-нибудь имеет представление о том, как я могу отслеживать "реальное" количество байтов, считанных из исходного потока?

1 Ответ

1 голос
/ 10 октября 2011

При использовании библиотек JavaZoom, AudioInputStream будет DecodedMpegAudioInputStream при работе с MP3. Приведя AudioInputStream к DecodedMpegAudioInputStream, вы можете получить количество прочитанных байтов, вызвав properties () и получив ключ «mp3.position.byte».

...