大视频到字符串base64导致outofmemoryerror错误

时间:2012-08-02 09:52:33

标签: android string web-services bytearray

我需要将视频发送到.net中的webservice,我发送一个字符串base64编码,如果视频大约2MB或6 o 7秒全部没问题,但是什么时候更重,导致outofmemoryerror当我做Bas.encode [字节[]);

这是我的代码:

videoPath = getRealPathFromURI(fileUri);
                            File tmpFile = new File(videoPath);
                            in = null;
                            in = new BufferedInputStream(new FileInputStream(tmpFile));
                            bos = new ByteArrayOutputStream();
                            long tamano = tmpFile.length();
                            int iTamano = (int) tamano;
                            byte[] b = new byte[iTamano];
                            int bytesRead;
                            while ((bytesRead = in.read(b)) != -1) {
                                bos.write(b, 0, bytesRead);
                            }
                            ficheroAEnviar = bos.toByteArray();
try {
                    strBase64 = Base64.encode(ficheroAEnviar);

                }
                catch (Exception e) {

                    correcto = false;
                    e.printStackTrace();
                }

此行崩溃:strBase64 = Base64.encode(ficheroAEnviar);

1 个答案:

答案 0 :(得分:4)

你不能这样做。内存是android中的一个问题。您应该将视频分成几个部分,对每个部分进行编码,发送它(我想你想通过WS或其他东西发送它)并在目的地重新组合它。