0
我正试图从sd卡流式传输视频文件到铬铸造设备。我用下面的源代码制作了一个http服务器。如何创建一个Android HTTP服务器来提供媒体文件以在Web浏览器中进行流式传输或使用Chrome浏览器投射?
https://github.com/joinAero/AndroidWebServ
但我不能流超过50 MB的视频文件。也无法寻找流。我该如何解决这个问题?
我正试图从sd卡流式传输视频文件到铬铸造设备。我用下面的源代码制作了一个http服务器。如何创建一个Android HTTP服务器来提供媒体文件以在Web浏览器中进行流式传输或使用Chrome浏览器投射?
https://github.com/joinAero/AndroidWebServ
但我不能流超过50 MB的视频文件。也无法寻找流。我该如何解决这个问题?
背景上的流媒体(你到Android的具体问题之前)
客户机到服务器应该包括与GET媒体请求头......
> Transfer-Encoding: chunked
> Content-Type: $Mimetype-for-media
> Expect: 100-continue
服务器和客户端头和协议会东西你没有寻找到当上(Apache或与HTTP 1.1 nginx的)
的nginx/Apache将首先发送响应头:
< 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).
如果你的Android服务器实现了协议,那么它不会从阿帕奇/ nginx的服务分块媒体在http有什么不同。它会工作。
你能否提供一个示例代码?谢谢 –
看到添加的代码。 –