如何向服务器发送大尺寸视频?

时间:2015-12-21 17:39:47

标签: android large-files large-file-upload

我找到了这段代码HttpURLConnection to Send image , audio and video files with parameter may (String or Json String) Android,它可以与视频,图像和音频完美配合。但是当我发送一个大视频时,我收到了这个错误:

Throwing OutOfMemoryError "Failed to allocate a 28 byte allocation with 0 free bytes and -1856B until OOM" (recursive case)

1 个答案:

答案 0 :(得分:0)

视频太大而无法同时在RAM中使用,因此您需要将文件缩小,或者将其与片段一起使用,在这种情况下,您的服务器需要配置为接受块流数据也是如此。来自HttpURLConnection文档:

  

要将数据上传到Web服务器,请配置输出连接   使用setDoOutput(true)。为获得最佳性能,您应该致电   setFixedLengthStreamingMode(int)当身体长度已知时   advance,或者setChunkedStreamingMode(int)。除此以外   HttpURLConnection将被强制缓冲整个请求体   在传输之前的内存,浪费(并可能耗尽)   堆积和增加延迟。

因此设置setChunkedStreamingMode()可能会解决您的问题。

您也可以查看以下问题:Upload large file in Android without outofmemory error