我正在开发一个android应用程序,其中包括照片和视频上传/下载到firebase存储。我对firebase的功能非常满意,但上传/下载图片和视频需要更多的时间,即使我在高速互联网上。
图片和视频的上传和下载运行得很好,但我不能指望谷歌支持的平台会这么慢。我正在压缩之前上传的图像,即使,所需的时间更多。比方说。我上传了7Mb大小的图片在WhatsApp个人资料图片,这将在最大5-6秒完成。但在我的android应用程序中,上传同一张图片需要60秒以上的时间。
伙计们,如果你们有更好的解决方案或实现,请与我们分享。
问候你,斯里尼
发布于 2018-08-23 18:58:52
这都是关于媒体压缩的。您还可以通过压缩您的媒体来上传与WhatsApp相同的图像、视频和其他媒体文件。压缩后检查firebase上传和下载的速度。你也会感受到它的速度。
以下是压缩工具
还有更多。我使用这两个库来压缩视频和图像文件。
这样使用firebase upload。
File file =new File(mediaPath);
if(file.exists()) {
UploadTask uploadTask = riversRef.putFile(Uri.fromFile(file),metadata);
Task<Uri> urlTask = uploadTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
@Override
public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
if (!task.isSuccessful()) {
throw task.getException();
}
// Continue with the task to get the download URL
return riversRef.getDownloadUrl();
}
}).addOnCompleteListener(task -> {
if (task.isSuccessful()) {
Uri downloadUri = task.getResult();
getUploadedMediaPath.getUploadedFileUrl(downloadUri.toString());
}
});
}发布于 2018-08-23 19:02:12
尝尝这个
// Get the data from an ImageView as bytes
Bitmap bitmap = ((BitmapDrawable) imageView.getDrawable()).getBitmap();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] data = baos.toByteArray();
UploadTask uploadTask = mountainsRef.putBytes(data);
uploadTask.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
// Handle unsuccessful uploads
}
}).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
// taskSnapshot.getMetadata() contains file metadata such as size, content-type, etc.
// ...
}
});发布于 2018-08-24 02:53:51
你有没有尝试过在WebP和WebM上获取照片和视频?
这是Google的一些团队开发的一种格式,旨在将文件大小减少到最小,而不会大量改变文件的质量。与其他格式的图像和视频相比,效果非常好。WebP还支持编码器和解码器。
请查看此处的工具WebP:
只需下载该工具并将其放在您的工作文件夹中,调用命令提示符并运行
cwebp -q int fileName.jpg -o fileName.webp
并查看结果。
查看WebM的工具:
https://stackoverflow.com/questions/51983420
复制相似问题