Bir*_*ani 7 flutter flutter-web
我正在开发的应用程序允许用户创建带有文本、图像和视频的社交帖子,例如 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]
Run Code Online (Sandbox Code Playgroud)
小智 1
查看这个包(也适用于网络):它的插件从视频文件或 URL 生成缩略图:get_thumbnail_video
使用专为视频处理设计的外部服务或 API,它们可以接受视频 URL 或视频文件作为输入并返回生成的缩略图。为了实现这一点,您的 Flutter Web 应用程序将向这些服务发出 HTTP 请求,并且它们将返回缩略图。
实施服务器端处理:为此,您可以使用 Node.js、Python 或任何后端框架。服务器可以处理视频缩略图生成,因为您可以更好地控制 FFmpeg 或 OpenCV 等服务器端库。
利用 JavaScript 库:使用 flutter web,您可以使用dart:js包与 JavaScript 进行通信。video.js这提供了利用 JavaScript 库(例如或 )来显示视频和提取缩略图的选项flv.js。这本质上意味着您正在 Dart 代码和 JavaScript 之间创建连接,以处理更高级的视频相关任务。(我想您可以在这里找到更多信息:使用 HTML canvas 渲染视频缩略图)
这只是使用 JavaScript 和元素捕获视频帧作为缩略图的代码示例HTML5 canvas:
import 'dart:html';
import 'dart:js' as js;
void captureThumbnail(VideoElement videoElement) {
CanvasElement canvas = CanvasElement(width: videoElement.videoWidth, height: videoElement.videoHeight);
var context = canvas.context2D;
context.drawImage(videoElement, 0, 0);
Blob thumbnailBlob = canvas.toBlob('image/jpeg', 0.7);
}
// then you can work with the thumbnailBlob
Run Code Online (Sandbox Code Playgroud)
祝你好运!
| 归档时间: |
|
| 查看次数: |
1687 次 |
| 最近记录: |