android - 将视频分成几部分,在android中用base64编码每个部分
问题描述
在我的应用程序中,我将大尺寸的视频上传为 base64 字符串形式,这会导致内存不足错误。有一种解决方案可以防止将视频分成几部分,将每个部分编码为base64,但我不知道该怎么做,因为我在android应用程序开发方面没有太多经验?
InputStream inputStream = null;
// Converting the video in to the bytes
try {
inputStream = getContentResolver().openInputStream(Uri.parse(String.valueOf(selectedMediaUri)));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
int bufferSize = 1024;
byte[] buffer = new byte[bufferSize];
ByteArrayOutputStream byteBuffer = new ByteArrayOutputStream();
int len = 0;
try {
assert inputStream != null;
while ((len = inputStream.read(buffer)) != -1) {
byteBuffer.write(buffer, 0, len);
}
} catch (IOException e) {
e.printStackTrace();
}
String videoData = Base64.encodeToString(byteBuffer.toByteArray(), Base64.DEFAULT);
解决方案
而不是使用Base64
usemultipart
来上传文件,这将解决您的问题。
推荐阅读
- kotlin - 在 Kotlin/TornadoFX 中关闭视图时如何执行清理操作?
- haskell - 使用绑定函数处理列表
- python - python selenium,无法从page_source中找到元素,而可以从浏览器中找到
- python - 更改背景画布 kivy
- ruby-on-rails - Rails:获取关联关联
- amazon-web-services - 自定义角色(Lambda)如何与 EC2 角色策略一起使用?
- php - Slim 测试错误:函数名必须是字符串
- sql - 从 3 个 CSV 文件中排序和选择
- regex - 无法找出正则表达式来匹配这些情况
- facebook - Organic Post 分享 Instagram Graph API