问题
I want convert video in base64 String so i convert migBase64 Method through my video in android it convert video to string successfully but when i decode String to Video then it not proper converting in video. so please help me if anyone knows.
i try code like below:
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.
my problem is decoding string to video, my original video is 1 MB and after decoding video is 1.1 kb it not convert my original video please help me.
回答1:
I solve my problem, i post code for someone help.
//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());
}
来源:https://stackoverflow.com/questions/26842768/how-to-decode-video-from-base64