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)
请纠正......
编码时byteBufferString
,您只编码最后读取的数据块.你应该编码的全部内容ByteArrayOutputStream
.您可以使用以下代码执行此操作:
videodata = Base64.encodeToString(objByteArrayOS.toByteArray(), Base64.DEFAULT);
Run Code Online (Sandbox Code Playgroud)
但是,OutOfMemoryError
如果视频大小很大,则可能会出现这种情况.
归档时间: |
|
查看次数: |
16297 次 |
最近记录: |