如何从 Flutter Web 中的 Uint8List 获取视频缩略图?

Posted

技术标签:

【中文标题】如何从 Flutter Web 中的 Uint8List 获取视频缩略图?【英文标题】:How to get Video Thumbnail from Uint8List in Flutter Web? 【发布时间】:2020-09-19 09:19:31 【问题描述】:

我正在开发的应用程序允许用户使用文本、图像和视频创建社交帖子,例如 Facebook。我正在研究 PWA 部分,我遇到了这个问题。为了从存储中选择视频,我需要创建视频的缩略图以在 UI 中显示。

我能够将视频选为 Uint8List,因为它在所有平台上都受支持,但我无法从中获得缩略图。我尝试了许多库,但都使用 File 作为输入。

有什么办法可以完成吗?

我正在使用以下代码获取视频文件的 Uint8List...

使用的库:file_picker_cross

final filePicker = FilePickerCross(type: FileTypeCross.video);
await filePicker.pick();
final imageBytes = filePicker.toUint8List();
// TODO: get video thumbnail from [imageBytes]

【问题讨论】:

我知道可以,但问题是如何从视频Uint8List 中获取缩略图? 等等等等,你有整个视频的二进制内容吗?像 1GB 的 2 小时电影? 实际上并非如此。请参阅我正在尝试将 android/ios 应用程序与 pwa 结合起来。由于File 类来自两个平台上的不同包,我只剩下Uint8List。所以我试图让它工作并从中获取缩略图。这个解决方案似乎只是可行的,我没有尝试将视频实际加载为Uint8List,如果这就是你要问的。我猜该应用不允许上传超过 15 MB 的视频。 @pskink 我遇到了这个包,但由于它不支持从Uint8List 加载缩略图,所以我没有尝试!我现在用 File 来做这件事!谢谢。 file_picker 不适用于网络... 【参考方案1】:

你可能会在你的 Flutter 项目中使用 video_thumbnail 0.2.5+1 插件

final uint8list = await VideoThumbnail.thumbnailData(
 video: videofile.path,
 imageFormat: ImageFormat.JPEG,
 maxWidth: 128,
// specify the width of the thumbnail, let the height auto-scaled to keep the source aspect ratio
quality: 25,
);

);

【讨论】:

我用过这个,它适用于移动设备。但它在网络上不起作用。 @BirjuVachhani 你曾经为 Flutter Web 上的视频创建缩略图吗? 不。我没有。 你找到什么了吗? 对此有何建议?

以上是关于如何从 Flutter Web 中的 Uint8List 获取视频缩略图?的主要内容,如果未能解决你的问题,请参考以下文章

在 Flutter 中 - 从 Web 浏览器中的 PayPal 完成交易页面返回后,如何将用户推送到应用程序中的“谢谢”页面

如何从 Flutter Web 中的 Uint8List 获取视频缩略图?

如何从 Flutter web 调用原生 Android 代码。?

如何更改 Flutter web 中的 url?

如何从 IDE 在移动 chrome 上运行 Flutter Web

如何从存储中选择多个图像并在 Flutter 和 Flutter Web App 中显示? [关闭]