如何将视频转换为base64数据

Muk*_*mar 7 video base64 android

我有一个应用程序,从相机或画廊拍摄视频并将其转换为base64数据,并将数据发送到服务器,但问题是每当我转换base64数据时,它将不是视频数据变量中的正确数据.为此我用下面的代码:

FileInputStream objFileIS = null;
try
{
    System.out.println("file = >>>> <<<<<" + selectedImagePath);
    objFileIS = new FileInputStream(selectedImagePath);
} 
catch (FileNotFoundException e) 
{
    e.printStackTrace();
}
ByteArrayOutputStream objByteArrayOS = new ByteArrayOutputStream();
byte[] byteBufferString = new byte[1024];
try
{
    for (int readNum; (readNum = objFileIS.read(byteBufferString)) != -1;) 
    {
        objByteArrayOS.write(byteBufferString, 0, readNum);
        System.out.println("read " + readNum + " bytes,");
    }
} 
catch (IOException e)
{
    e.printStackTrace();
}                    

videodata = Base64.encodeToString(byteBufferString, Base64.DEFAULT);
Log.d("VideoData**>  " , videodata);
Run Code Online (Sandbox Code Playgroud)

请纠正......

Raj*_*esh 5

编码时byteBufferString,您只编码最后读取的数据块.你应该编码的全部内容ByteArrayOutputStream.您可以使用以下代码执行此操作:

videodata = Base64.encodeToString(objByteArrayOS.toByteArray(), Base64.DEFAULT);
Run Code Online (Sandbox Code Playgroud)

但是,OutOfMemoryError如果视频大小很大,则可能会出现这种情况.

  • 是的,正如你提到的,我遇到了同样的错误 OutOfMemoryError 那么它的解决方案是什么? (2认同)