Project Icon

mediaelement-plugins

增强HTML5媒体播放功能的强大插件集合

MediaElement.js Plugins是为MediaElementJS开发的插件集合,提供速度控制、循环播放、跳过和标记等多种功能。这些插件易于集成,支持多语言,遵循现代JavaScript开发规范,可显著增强HTML5媒体播放器的功能。开发者通过使用这些插件,能够轻松扩展MediaElementJS播放器的能力,从而为用户带来更优质的媒体播放体验。

MediaElementJS

MediaElement.js 插件

CDNJS

本仓库包含为MediaElementJS构建的插件。

目录

* 2.3.0版本的重要变更

作为对播放器持续改进的一部分,我们决定完全停止对IE9和IE10的支持,因为根据https://caniuse.com/usage-table 的数据,这两个浏览器的市场份额总和仅为0.4%。

此变更适用于MediaElementMediaElement Plugins仓库。

安装

https://github.com/mediaelement/mediaelement-plugins 下载包,并引用dist文件夹中你需要的任何插件,然后添加与插件相关的任何配置。

或者你可以使用CDN;查看https://cdnjs.com/libraries/mediaelement-plugins。

例如,如果你想安装Speed插件,请执行以下操作:

<script src="/path/to/mediaelement-and-player.min.js"></script>
<!-- 从`build/lang`文件夹包含任何语言 -->
<script src="/path/to/dist/speed/speed.min.js"></script>
<!-- 插件的翻译文件(包括播放器上可用的所有语言)-->
<script src="/path/to/dist/speed/speed-i18n.js"></script>
<script>
    var player = new MediaElementPlayer('playerId', {
        defaultSpeed: 0.75,
        // 其他配置元素
    });
</script>

其中一些插件会包含CSS样式,所以请将它们放在主播放器样式表之后:

<link rel="stylesheet" href="/path/to/mediaelementplayer.min.css">
<link rel="stylesheet" href="/path/to/dist/speed/speed.min.css">

贡献指南

Node.js

https://nodejs.org/ 下载并按步骤安装,或者使用npm安装node.js

安装完成后,在命令提示符中输入npm install,这将下载所有必要的工具。

通用约定

  • 缩进使用8个空格的制表符。
  • 始终/src/目录中的文件进行更改,绝不/dist/目录进行更改。这是为了方便合并(以及后续的编译)操作,并帮助人们更容易看到变更。
  • 使用JSDoc约定来记录代码。这有助于其他开发者的贡献,并确保产品的更高质量。
  • 在推送任何更改之前,运行npm run eslint以确保代码质量。
  • 功能文件必须放在与其名称匹配的文件夹内,以及所需的任何SVG/CSS元素(例如,loop/loop.js)。
  • 更新package.json,在script配置下添加命令,以确保正确打包和编译。更多参考,请查看该文件
  • 确保创建一个docs/FEATURE_NAME.md文件,描述其目的、API等,并在README文件中添加名称及其文档链接,以保持文档的最新状态。
  • 不要重复造轮子:使用MediaElement提供的DOM操作/AJAX等实用工具。查看此链接了解更多详情。
  • 你也可以在功能文件夹内包含CSS,文件名与功能JS文件匹配,并为"legacy"和BEM命名约定添加CSS样式。
  • 如果使用图标,其大小必须20x20px,以匹配所有其他图标的尺寸。
.mejs__[feature_name], .mejs-[feature_name] {
    // 所有你的样式
}

功能创建模板

'use strict';

/**
 * [功能名称]
 *
 * [描述]
 */

// 如果插件需要翻译,请按以下格式放置英语翻译:
// mejs.i18n.en["mejs.id1"] = "字符串1";
// mejs.i18n.en["mejs.id2"] = "字符串2";

// 功能配置
Object.assign(mejs.MepDefaults, {
    // 任何可由最终用户配置的变量都属于此处。
    // 通过检查API和配置文件确保其唯一性。
    // 为每个变量添加关于其性质的注释。
});


Object.assign(MediaElementPlayer.prototype, {

    // 公共变量(也按照JSDoc规范进行文档化)

    /**
     * 功能构造函数。
     *
     * 始终必须以`build`为前缀,后跟将在MepDefaults.features列表中使用的名称
     * @param {MediaElementPlayer} player
     * @param {HTMLElement} controls
     * @param {HTMLElement} layers
     * @param {HTMLElement} media
     */
    build[feature_name] (player, controls, layers, media) {
        // 这允许我们访问已设置的选项和其他有用元素。
        // 如果计划在进一步操作中重用这些变量,
        // 将变量添加到对象中是个好主意。
        const t = this;

        // 所有必需的代码都在这里保持私有性;
        // 否则,你可以创建更多方法或在此作用域之外
        // 添加变量
    },

    // 可选地,每个功能可以通过设置`clean`方法来销毁

    /**
     * 功能析构函数。
     *
     * 始终必须以`clean`为前缀,后跟在MepDefaults.features列表中使用的名称
     * @param {MediaElementPlayer} player
     * @param {HTMLElement} controls
     * @param {HTMLElement} layers
     * @param {HTMLElement} media
     */
    clean[feature_name] (player, controls, layers, media) {}

    // 其他可选的公共方法(全部按照JSDoc规范进行文档化)
});

翻译模板

如果可翻译字符串是插件的一部分,你需要创建一个格式如下的[feature_name]-i18n.js文件:

'use strict';

if (mejs.i18n.ca !== undefined) {
        mejs.i18n.ca["mejs.id1"] = "";
}
if (mejs.i18n.cs !== undefined) {
        mejs.i18n.cs["mejs.id1"] = "";
}
// 以及其他语言

注意MediaElementPlayer集成的语言越多,这个模板就会变得越大。

另外,如果你要向MediaElementPlayer添加新语言,你需要按照上面模板中描述的方式将其添加到所有现有的i18n文件中。

关于功能的ES6说明

所有功能都使用Ecmascript 2015规范编写。

查看src/目录,了解文件的编写方式以确保兼容性。

注意:虽然可以使用for...of循环,但为了打包文件并减小打包文件的大小,强烈建议避免使用它。

可用插件

更新日志

更新内容可在更新日志中查看

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号