你好 ![]()
我想到了两种可能的方式。
第一种是最简单的方式,只需创建一个小主题组件,它使用插件 API api.decorateCookedElement 来查找帖子中的所有视频并添加这些属性(自动播放、循环等)。
它将修改整个网站帖子中所有视频的 HTML。在编辑器中,仍然会出现你上面提到的视频 Markdown 代码。

优点:影响了网站上的所有视频(包括之前的上传)。
缺点:用户无法控制,因为这是发生在已发布的帖子上的。它会影响所有视频,所以如果你有一个包含大量视频的主题,并且这些视频想同时开始播放,可能会出现问题。
第二种选择需要更多的工作。它是一个模态框,用户可以在其中控制将添加到上传视频的哪些属性。可以通过向编辑器添加一个特定按钮来触发它,或者在检测到视频上传时自动触发它。
完成后,它会在编辑器中插入包含已添加属性的视频 HTML。
<video width="100%" height="100%" preload="metadata" controls="" autoplay>
<source src="https://www.simscale.com/forum/uploads/default/original/3X/d/6/d6fab77fb56eeb98ef660d682f344dba4bbb66ce.mp4">
<a href="https://www.simscale.com/forum/uploads/default/original/3X/d/6/d6fab77fb56eeb98ef660d682f344dba4bbb66ce.mp4">/forum/uploads/default/original/3X/d/6/d6fab77fb56eeb98ef660d682f344dba4bbb66ce.mp4</a>
</video>
一个很好的例子是 Insert Video 主题组件。
优点:用户可以控制他们的视频属性,并且可以选择禁用自动播放等,因此视频繁多的主题也可以正常工作。
缺点:它不会影响旧视频。但这并不是一个大缺点,因为第二种方法的整个过程都是关于用户如何控制他们的视频。
加分项
第一种方法可以与用户设置或群组结合使用。通过这种方式,用户可以设置视频的行为。
例如:“启用自动播放视频”或加入一个将激活视频自动播放等的群组……
编辑:我刚才想到我忘了懒加载,第一种方法可能现在不起作用了,因为懒加载只会在用户点击缩略图播放按钮时加载视频。我还没有尝试过…… ![]()