我想在base64字符串中转换视频所以我通过我的视频在android中转换migBase64方法它将视频转换为字符串成功但当我解码字符串到视频然后它没有正确转换视频。如果有人知道的话,请帮助我。
我尝试下面的代码:
String encodedString;
//Decode Video To String
File tempFile = new File(Environment.getExternalStorageDirectory()+ "/my/part/my_0.mp4");
byte fileContent[] = new byte[3000];
try {
FileInputStream fin = new FileInputStream(tempFile);
while (fin.read(fileContent) >= 0) {
// b.append(Base64.encodeToString(fileContent, true));
encodedString = Base64.encodeToString(fileContent, true);
}
} catch (IOException e) {
}
//Encoding Video To String Successfully.
//Decode String To Video
try {
byte[] decodedBytes = Base64.decodeF
File file2 = new File(Environment.getExternalStorageDirectory()
+ "/my/Converted.mp4");
FileOutputStream os = new FileOutputStream(file2, true);
os.write(decodedBytes);
os.close();
} catch (Exception e) {
// TODO: handle exception
Log.e("Error", e.toString());
}
// Problem is in Decoding.
我的问题是解码字符串到视频,我的原始视频是1 MB,解码后的视频是1.1 kb它不转换我原来的视频请帮助我。
答案 0 :(得分:9)
我解决了我的问题,我发布了一些帮助的代码。
//Encode Video To String With mig Base64.
File tempFile = new File(Environment.getExternalStorageDirectory()
+ "/my/part/my_0.mp4");
String encodedString = null;
InputStream inputStream = null;
try {
inputStream = new FileInputStream(tempFile);
} catch (Exception e) {
// TODO: handle exception
}
byte[] bytes;
byte[] buffer = new byte[8192];
int bytesRead;
ByteArrayOutputStream output = new ByteArrayOutputStream();
try {
while ((bytesRead = inputStream.read(buffer)) != -1) {
output.write(buffer, 0, bytesRead);
}
} catch (IOException e) {
e.printStackTrace();
}
bytes = output.toByteArray();
encodedString = Base64.encodeToString(bytes, true);
Log.i("Strng", encodedString);
//Decode String To Video With mig Base64.
byte[] decodedBytes = Base64.decodeFast(encodedString.getBytes());
try {
FileOutputStream out = new FileOutputStream(
Environment.getExternalStorageDirectory()
+ "/my/Convert.mp4");
out.write(decodedBytes);
out.close();
} catch (Exception e) {
// TODO: handle exception
Log.e("Error", e.toString());
}