Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Wav-stream proxy и HTML5 
:(
    Опции темы
Neuronix
Дата 11.9.2012, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 16.12.2005
Где: СПб

Репутация: нет
Всего: нет



Добрый день!

Пытаюсь сделать прокси для wav-потока c веб камеры.

Класс занимающися этим, выглядит так:
Код

public class AudioHandler extends HttpServlet {


    public AudioHandler() {
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {


        response.setContentType("audio/wav");
        response.setStatus(HttpServletResponse.SC_OK);
        response.setHeader("Cache-Control", "no-cache");

        //////////////////////////////////////

        InputStream in = null;
        OutputStream out = null;

        try {

            System.err.println("[audio] Get stream!");

            // URL = http://localhost:8080/control/audio?cam=10
            URL cam = new URL("http://192.168.10." + request.getParameter("cam") + "/audio.cgi");
            URLConnection uc = cam.openConnection();
            out = new BufferedOutputStream(response.getOutputStream());

            in = uc.getInputStream();
            byte[] bytes = new byte[8192];
            int bytesRead;

            while ((bytesRead = in.read(bytes)) != -1) {
                out.write(bytes, 0, bytesRead);
                out.flush();
            }

        } catch (IOException ex) {
            // Disconnect detected
            System.err.println("[audio " + request.getParameter("cam") + "] Audio client disconnected");
            // Прерываем поток, иначе передача не будет остановена
            Thread.currentThread().interrupt();
        }
    }
}


С огорчением узнал, что средствами Flash поток wav не проиграть. Но в HTML5 есть тег audio, который может проигрывать wav-поток.

В HTML код:
Код

<audio src="/control/audio?cam=20" controls preload="none">
                                Your browser does not support the
                                audio element.
</audio>


Запускаю, слышу поток, но… ровно 33 секунды. После этого воспроизведение останавливается, как будто длинна файла составляет именно эти 33 секунды. Через Firebug видно, что поток не останавливался и данные еще передаются.

Подскажите, куда копать…
PM MAIL WWW ICQ   Вверх
AntonSaburov
Дата 11.9.2012, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 2
Всего: 118



Я бы попробовал другой брауезр для начала. Потом смотреть - а сервлет читает и отдает в этот момент или зависает ?
PM MAIL WWW ICQ   Вверх
Neuronix
Дата 11.9.2012, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 16.12.2005
Где: СПб

Репутация: нет
Всего: нет



Цитата(AntonSaburov @ 11.9.2012,  14:08)
Я бы попробовал другой брауезр для начала. Потом смотреть - а сервлет читает и отдает в этот момент или зависает ?

Попробовал Chrome - то же самое. В Firebug видно, что поток не прерывается.
Как посмотреть еще - не знаю...
PM MAIL WWW ICQ   Вверх
Neuronix
Дата 11.9.2012, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 16.12.2005
Где: СПб

Репутация: нет
Всего: нет



Попробовал проиграть в VLC - он дает те же 33 секунды. Похоже, что дело не в плеере. Куда еще можно посмотреть?
PM MAIL WWW ICQ   Вверх
Neuronix
Дата 11.9.2012, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 16.12.2005
Где: СПб

Репутация: нет
Всего: нет



На выходе с прокси ответ без заголовков (т.е. без HTTP 200, Content-Type и т.п.) - сразу идет тело WAV. Похоже, что может быть проблема именно в этом. Никак не могу понять, почему заголовки не выходят....
PM MAIL WWW ICQ   Вверх
AntonSaburov
Дата 11.9.2012, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 2
Всего: 118



Заголовки может прокси режет. А без прокси проверить не получается ? И что там сервлет делает - он висит на отдаче в стрим потока байтов или крутиться. Поставь простой логинг.
PM MAIL WWW ICQ   Вверх
Neuronix
Дата 12.9.2012, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 16.12.2005
Где: СПб

Репутация: нет
Всего: нет



С камеры - те же 33 секунды ;)
Вообщем, написал апплет - все работает как надо. Кому интересно - https://github.com/Neuronix2/IRIS-X-Player
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Работа с сетью | Следующая тема »


 




[ Время генерации скрипта: 0.1166 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.