Discourseのmp4プレーヤーは見た目が悪く、改善方法を探していたところ、これを見つけました。かなりシンプルで、設定方法も簡単で、CSSとJSを導入するだけで済みます。
テーマのヘッダーにJSとCSSを追加するだけです。
<link rel="stylesheet" href="https://cdn.plyr.io/3.6.12/plyr.css">
<script src="https://cdn.plyr.io/3.6.12/plyr.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function () {
const player = new Plyr('video');
});
</script>
プロジェクト紹介:
https://mp.weixin.qq.com/s?__biz=MzI2MzEwNTY3OQ==&mid=2648985399&idx=1&sn=4736244185148aa38aa931d10a320e6e&chksm=f25012d7c5279bc12aa26b0864d2600330ac8da243720695240d90b003685fcff4587fe9b331&scene=27
英語翻訳: (discourse-ai 提供)
Discourse の MP4 プレーヤーは、非常に魅力的ではありません。それを改善するための検討と調査の中で、この代替案を見つけました。それは、ある種のミニマリズムの魅力を放っており、そのセットアップ方法は非常に簡単です。対応する CSS と JS を含めるだけでうまくいきます。
上記の JS と CSS をテーマのヘッダーに統合するだけです。
<link rel="stylesheet" href="https://cdn.plyr.io/3.6.12/plyr.css">
<script src="https://cdn.plyr.io/3.6.12/plyr.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function () {
const player = new Plyr('video');
});
</script>
プロジェクトの詳細については、以下をご覧ください。
https://mp.weixin.qq.com/s?__biz=MzI2MzEwNTY3OQ==&mid=2648985399&idx=1&sn=4736244185148aa38aa931d10a320e6e&chksm=f25012d7c5279bc12aa26b0864d2600330ac8da243720695240d90b003685fcff4587fe9b331&scene=27
本文中的内容有误,会产生bug,从主页加载的时候,播放器不会生效,下面是我花$50请人帮我修改的 ,免费分享给有需要的人,播放器效果很好,值得推荐!
优点:
色调比较搭配
播放器一开始就是适应屏幕的,而不是从小到大
功能较多
发布,有video标签即可
<video controls>
<source src="https://xxxx/test.mp4" type="video/mp4">
</video>
在头部添加,css和js最好下载到自己的cdn中。
<link rel="stylesheet" href="https://cdn.plyr.io/3.6.12/plyr.css">
<script src="https://cdn.openfa.net/css/plyr.js"></script>
在正文body中添加
<script type="text/javascript">
let curUrl = "";
setInterval(() => {
let newUrl = location.href;
if (curUrl !== newUrl) {
curUrl = newUrl
if (document.querySelector("video")) {
new Plyr('video')
}
}
}, 10)
</script>
最终效果:
还可以设置字幕清晰度等
Lhc_fl
(Linca)
2023 年 9 月 17 日午前 8:05
4
???
恕我直言 这是非常糟糕的代码,糟糕透了。
它将会每10毫秒运行一个99%的时间内都不会起作用的函数,极大的浪费性能。
当然,家用计算机支撑得住这种花销……但它实在是太不优雅了。
IMHO this is very bad code, awful.
It will run a function every 10 milliseconds that will not work 99% of the time, which is a huge waste of performance.
Sure, a home computer could support the expense… but it’s just so inelegant
你应该使用discourse的API来完成这项工作。使用这个:
You should use discourse’s API to do this. use this:
<script type="text/discourse-plugin" version="0.8">
api.onPageChange(() => {
if (document.querySelector("video")) {
new Plyr('video');
}
});
</script>
运思 曾:
下面是我花$50请人帮我修改的
你应该干脆找我的(just kidding)
「いいね!」 1
Vいくらですか?次回はあなたを探します。仕方ないです。長い間やっていました。
Lhc_fl
(Linca)
2023 年 9 月 17 日午前 8:11
6
大丈夫ですよ、これはほんの些細なことです。もっとやりがいのある仕事があれば、また話しましょう。
(もちろん、この仕事が簡単だという意味ではありません……APIを素早く呼び出すには、十分な量のdiscourseソースコードを読み込むのに多くの時間を費やす必要があります。また、お金を払わないと、あなたが何を実装したいのか、本当に気にかけてくれる人はほとんどいません。)
hawm
(Hawm)
2023 年 9 月 17 日午前 8:11
7
<script src="https://cdn.plyr.io/3.7.8/plyr.js"></script>
<script type="text/discourse-plugin" version="1.8">
api.decorateCookedElement(elem => elem.querySelectorAll('video').forEach((e) => {new Plyr(e)}));
</script>
「いいね!」 1
このプレーヤーは本当に使いやすいです。標準のものより少し見栄えが良いです。あなたはどのようなタスクを引き受けますか?
コードのレンダリングが速いか、少しテストして比較しました。
<script src="https://cdn.plyr.io/3.7.8/plyr.js"></script>
<script type="text/discourse-plugin" version="1.8">
api.decorateCookedElement(elem => elem.querySelectorAll('video').forEach((e) => {new Plyr(e)}));
</script>
system
(system)
クローズされました:
2023 年 10 月 17 日午前 8:46
11
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.