2015-07-06 3 views
0

Я пытался передать видеофайл с SD-карты на хромированное устройство. Я сделал http-сервер со следующим источником.Как создать HTTP-сервер Android для работы с мультимедийными файлами для потоковой передачи в веб-браузере или в хромированном режиме?

https://github.com/joinAero/AndroidWebServ

Но я не может передавать видео файлы размером более 50 МБ. Также не удается найти поток. Как я могу решить эту проблему?

ответ

0

фон на потоковом медиа (прежде чем попасть на андроид конкретных вопросов)

клиента к серверу должен включать заголовки с запросом GET медиа ...

> Transfer-Encoding: chunked 
> Content-Type: $Mimetype-for-media 
> Expect: 100-continue 

сервер на клиентские заголовки и протокол будет что-то вы не должны смотреть в, когда на (апач или Nginx с HTTP 1.1)

Nginx/апач будет первым отправить заголовки ответа:

< Content-Type: $Mime 
< Transfer-Encoding: chunked 

клиента и сервер договариваются о фрагментированном кодирования с продолжением протокола:

* Done waiting for 100-continue 

и тогда сервер просто не Io в соответствии с протоколом до конца из-потока, который она оповещает с «END» сигнал, соответствующий протоколу.

см wiki или прочитать rfc для деталей того, что сервер посылает указать $ END ...

Когда вы написали последний сегмент медиа-файл для вывода сервера, послать сигнал END в протокол для «фрагментированного кодирования» ...

private static final byte[] FINAL_CHUNK = new byte[] { '0', '\r', '\n', '\r', '\n' }; 

$myConnection.getResponse().getOutputStream().write(FINAL_CHUNK). 

Если андроида сервер реализует протокол, то он не будет отличаться от Apache/Nginx, обслуживающие Chunked СМИ по HTTP. он будет работать.

+0

не могли бы вы предоставить пример кода? Спасибо –

+0

см. Добавленный код. –