То, что вы выполняете эту работу в классе сервлетов, создает у меня впечатление, что вы намереваетесь воспроизводить mp3-файл всякий раз, когда кто-то посещает ваш сайт, и что посетитель должен услышать этот mp3-файл.
Если trueИзвините, но вы подходите к этому совершенно неправильно.Код сервлета Java запускается на компьютере веб-сервера, а не на компьютере веб-браузера.Каждый раз, когда кто-то посещает ваш сайт, таким образом, mp3-файл будет воспроизводиться только на сервере веб-сервера.Обычно это физически совершенно другая машина, которая работает на другой стороне сетевого соединения, и посетитель никогда не услышит музыку.
Вы хотите отправить необработанный (неизмененный побайтно-байтовый) файл mp3 с веб-сервера на веб-браузер, не массируя его каким-либо Java Audio API, и дать указание веб-браузеру воспроизвести этот файл.Самый простой способ - просто удалить mp3-файл в общедоступном веб-контенте (там, где также находятся ваши HTML / JSP-файлы) и использовать тег HTML <embed>
для встраивания его в ваш HTML / JSP-файл.В приведенном ниже примере предполагается, что файл MP3 находится в той же папке, что и файл HTML / JSP:
<embed src="file.mp3" autostart="true"></embed>
Это все, и это поддерживается практически во всех браузерах, и он также отображает проигрыватель.
Если файл MP3 по деловому требованию хранится вне общедоступного веб-контента, то для этого вам действительно может понадобиться сервлет, но сервлет не должен делать ничего другого, кроме как каким-то образом получить InputStream
и записать его без измененийдо OutputStream
из HttpServletResponse
обычного способа ввода-вывода Java.Вам нужно только предварительно установить заголовок HTTP Content-Type
на audio/mpeg
и, если возможно, также заголовок HTTP Content-Length
.Затем укажите src
на URL сервлета.
<embed src="mp3servlet" autostart="true"></embed>