У меня есть аудиофайл, который воспроизводится, когда я нажимаю URL (говорит) a.b.c.d/audio/sound1.wav Браузер воспроизводит аудио.Воспроизведение аудио/wav-файла по URL/JAVA
Теперь мое требование: есть приложение vxml, которое ударит по URL-адресу и должно воспроизвести аудио. Звук динамически выбирается. У меня есть сервлет работает, (vxml ударит URL сервлета, чтобы получить аудиофайл) на основе или некоторых критериев, он будет выбирать/создавать аудиофайл. 1 вариант - я сохраню аудио в некотором пути и верну путь, который будет проигрываться vxml. Однако, я хочу, вместо того, чтобы возвращать путь, я дам весь звук, чтобы он играл в ответ.
Образец Код:
response.setContentType("audio/x-wav");
ServletOutputStream outStream = response.getOutputStream();
response.setHeader("Accept-Ranges", "bytes");
byte[] audioBytes = null;
try {
audioBytes = Utils.getWavBytes("abc.wav");
response.setContentLength(audioBytes.length);
outStream.write(audioBytes, 0, audioBytes.length);
} catch (UnsupportedAudioFileException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Но браузер не может играть, когда я попал в URL, содержащий этот код. Примечание: getWavBytes() только декодирует abc.wav в Byte []
Вы не должны декодировать wav, просто отправьте его байтом по байту, как он есть на вашем диске –
Можете ли вы добавить HTTP-ответ, где он работает, и он не работает к? – Reinard
Декодирование смысла, я читаю файл и формирую bytearray. Затем я пишу массив байтов в ответ. – Shelly