如何去除video_trimmer包中视频帧之间的黑间隙
解决video_trimmer包TrimEditor帧间黑间隙问题
针对你使用TrimEditor时出现的视频帧之间黑间隙问题,可以通过以下两种方式解决:
消除帧间内边距
TrimEditor默认会给每个视频帧添加内边距,这是黑间隙的主要来源。直接在TrimEditor中添加itemPadding: EdgeInsets.zero参数即可去掉间隙:自定义帧布局适配容器
如果调整内边距后仍有间隙,可能是视频帧的缩放方式导致的。可以通过自定义frameBuilder,让图片以BoxFit.cover模式填充整个帧容器,避免留白:
下面是修改后的完整代码:
TrimEditor( trimmer: controller.trimmer!, viewerHeight: 50, viewerWidth: Get.width, maxVideoLength: const Duration(seconds: 30), // 消除帧间内边距 itemPadding: EdgeInsets.zero, // 自定义帧构建,确保填充无间隙 frameBuilder: (context, frameImage) { return Container( width: double.infinity, height: double.infinity, child: Image.memory( frameImage, fit: BoxFit.cover, ), ); }, onChangeStart: (value) { controller.startValue.value = value; }, onChangeEnd: (value) { controller.endValue.value = value; }, onChangePlaybackState: (value) { controller.isPlaying.value = value; }, ),
原理说明:
itemPadding: EdgeInsets.zero直接移除了帧与帧之间的默认内边距,从根源上消除间隙。- 自定义
frameBuilder并设置BoxFit.cover,让每个视频帧都填满分配的容器空间,避免因视频分辨率与容器比例不一致产生的留白。
内容的提问来源于stack exchange,提问作者iAugustozSatoshi
相关产品推荐
相关产品推荐

