Исключение нехватки памяти при конвертации видеофайла

#android #out-of-memory

#Android #нехватка памяти

Вопрос:

Я конвертирую видеофайл в строку, используя кодировку Base64.

 try {
    encodedString =Base64.encodeBytes((getBytesFromFile(new File(Description.PATH))),Base64.GZIP);

} catch (IOException e) {
    e.printStackTrace();
}
  

Когда я конвертирую 60-секундное видео, я получаю исключение нехватки памяти..

 09-30 04:52:52.322: ERROR/AndroidRuntime(29995): Caused by: java.lang.OutOfMemoryError
09-30 04:52:52.322: ERROR/AndroidRuntime(29995):     at java.nio.CharArrayBuffer.<init>(CharArrayBuffer.java:43)
09-30 04:52:52.322: ERROR/AndroidRuntime(29995):     at java.nio.ReadWriteCharArrayBuffer.<init>(ReadWriteCharArrayBuffer.java:47)
09-30 04:52:52.322: ERROR/AndroidRuntime(29995):     at java.nio.BufferFactory.newCharBuffer(BufferFactory.java:82)
09-30 04:52:52.322: ERROR/AndroidRuntime(29995):     at java.nio.CharBuffer.allocate(CharBuffer.java:53)
09-30 04:52:52.322: ERROR/AndroidRuntime(29995):     at java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:214)
09-30 04:52:52.322: ERROR/AndroidRuntime(29995):     at java.nio.charset.Charset.decode(Charset.java:730)
  

Пожалуйста, дайте мне знать, как решить эту проблему.

Заранее спасибо

Комментарии:

1. Каков размер вашего видеофайла?

2. Привет, Манан, размер видеофайла ~ 10 МБ.

Ответ №1:

Я думаю, вам следует использовать encodeToString вместо encodeBytes().