我找到了这段代码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)
答案 0 :(得分:0)
视频太大而无法同时在RAM中使用,因此您需要将文件缩小,或者将其与片段一起使用,在这种情况下,您的服务器需要配置为接受块流数据也是如此。来自HttpURLConnection
文档:
要将数据上传到Web服务器,请配置输出连接 使用setDoOutput(true)。为获得最佳性能,您应该致电 setFixedLengthStreamingMode(int)当身体长度已知时 advance,或者setChunkedStreamingMode(int)。除此以外 HttpURLConnection将被强制缓冲整个请求体 在传输之前的内存,浪费(并可能耗尽) 堆积和增加延迟。
因此设置setChunkedStreamingMode()
可能会解决您的问题。
您也可以查看以下问题:Upload large file in Android without outofmemory error