gpt4 book ai didi

firebase - flutter with firebase - 检测 url 字符串是图像(jpg)还是视频(avi)

转载 作者:行者123 更新时间:2023-12-05 04:59:37 25 4
gpt4 key购买 nike

我是这些 Google 产品的新手,遇到了“严重”问题。

我将照片和视频上传到 firebase 存储,firebase 存储中的照片和视频的 url 会自动生成并存储在 firebase 数据库中。在我的 flutter 库中,我可以通过自己的代码调用这些 url,并在 avd 屏幕上显示 url 的图像。

Image.network(url) 是显示来自 firebase 的图片 url 的代码。但我也想用单个代码同时显示视频 url 的 Assets 。即视频和照片要单屏!在这种情况下,Image.network(url) 不再起作用了..

如果我根据 video_player 插件更改视频格式的 image.network 代码,我将无法再显示图像 Assets ,如果我与 Image.network(url) 保持不变 代码,我无法显示来自 firebase 的视频 url。那么问题来了:

我如何使用我的 flutter 代码检测 firebase 的 url 字符串是图像还是视频,并使用集成的 flutter 代码在“单一屏幕”上显示该 Assets ,无论文件格式是什么(至少是视频和照片)?

url example

最佳答案

这没什么大不了的,因为媒体类型在 URL 中。您可以将其解析为 Uri对象然后提取类型。

import 'dart:core';

enum UrlType { IMAGE, VIDEO, UNKNOWN }

void main() async {
var imageUrl =
'https://firebasestorage.googleapis.com/v0/b/myAppCodeNameForFirebase.appspot.com/o/Posts%20Pictures%2Fiufri095620200814.jpg?alt=media&token=89b6c22f-b8dd-4cff-9395-f53fc0808824';
var videoUrl =
'https://firebasestorage.googleapis.com/v0/b/myAppCodeNameForFirebase.appspot.com/o/Posts%20Pictures%2Fiufri095620200814.mp4?alt=media&token=89b6c22f-b8dd-4cff-9395-f53fc0808824';

print(getUrlType(imageUrl));
print(getUrlType(videoUrl));
}

UrlType getUrlType(String url) {
Uri uri = Uri.parse(url);
String typeString = uri.path.substring(uri.path.length - 3).toLowerCase();
if (typeString == "jpg") {
return UrlType.IMAGE;
}
if (typeString == "mp4") {
return UrlType.VIDEO;
} else {
return UrlType.UNKNOWN;
}
}

关于firebase - flutter with firebase - 检测 url 字符串是图像(jpg)还是视频(avi),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63445410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com