npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

zymedia-ct

v1.0.0

Published

zyMedia是一款基于HTML5原生multimedia、自定义UI的多媒体播放器。

Readme

zyMedia —— 一个轻量级媒体播放器

zyMedia是一款基于HTML5原生multimedia、自定义UI的多媒体播放器。

已用于公司的各非本地化产品线。

  • 支持Android、iOS移动端平台
  • 支持主流移动设备及国内TOP10移动端浏览器 (机型和浏览器版本更新较快,欢迎提issue,方便请标注下机型和环境,比如客户端版本(客户端内打开),浏览器默认的navigator.userAgent(浏览器打开))
  • 支持多种视频、音频格式,如mp4、mp3、oga、webm等
  • 轻量,UglifyJS压缩15KB,gzip约5k

视频界面展示

video ui

使用说明

  1. 引入样式文件zy.media.css和js文件zy.media.js
  2. 输入html结构,例如视频,其中video标签的data-config属性用于设置参数,

<div class="zy_media">
    <video poster="test.jpg" data-config='{"mediaTitle": "《疯狂动物城》--腾讯视频"}'>
        <source src="test.mp4" type="video/mp4">
        您的浏览器不支持HTML5视频
    </video>
</div>
  1. 绑定媒体节点,zymedia是一个全局对象,可重复调用,不返回视频实例,需要的话建议直接获取视频和监听相应事件,第二个参数是用于批量设置视频参数,示例

    zymedia('video');
    // zymedia('video', {...参数});
zymedia是做批量处理用的,单独设置用每个音视频上的data-config,
每个音视频的src可随时替换(比如document.querySelector('video').src = 'test.mp4'),容器尺寸会保持不变

参数说明

  • type: '' 指定媒体类型,默认空

  • mediaTitle: '' 设置媒体标题,默认空,不展示

  • nativeControls: false 强制用原生的播放控制器,默认不使用,true为使用

  • autoplay: false 是否自动播放,默认否,true为自动播放

  • preload: 'none' 是否预加载,默认关闭,和原生preload对应,其他值为metadata|auto|''

  • videoWidth: '100%' 指定视频宽,默认100%

  • videoHeight: 'auto' 指定视频高,默认auto

  • aspectRation: (16 / 9) 指定视频宽高比,默认16:9

  • audioWidth: '100%' 指定音频宽,默认100%

  • audioHeight: 44 指定音频高,默认44px

  • autoLoop: false 是否循环播放,默认否,true为无限循环

  • timeFormatType: 1 时间格式类型,默认mm:ss,2为m:s

  • alwaysShowHours: false 是否强制显示小时位,默认否,true为显示

  • alwaysShowControls: false 是否始终显示控制栏,默认否,自动隐藏,true为始终显示

  • hideVideoControlsOnLoad: false 加载时是否隐藏视频控制栏,默认否,true为隐藏

  • enableFullscreen: true 是否显示全屏按钮,默认显示,false为不显示

  • pauseOtherPlayers: true 是否播放唯一,默认唯一,播放时将暂停其他播放实例,false为不唯一

  • enableVisibilityState: true, 是否页面不可见时暂停当前所有播放,默认暂停

  • duration: 0 指定媒体时长,默认0

  • success: null 实例化成功时的回调,默认无

  • error: null 实例化错误时的回调,默认无

  • beforePlay: null 点击播放前的交互,默认无,如果函数返回true,将不播放视频

已测试移动设备列表

  • 小米1、小米2s、小米 MI3、红米、小米 Mi-4C、小米平板 MI PAD

  • vivo X5Max L、vivo Y33、vivo s7i(t)、vivo X6

  • 联想sisley2OFPL、联想A3860、联想 s720、联想 A820T

  • 魅蓝m1、魅蓝m2 note、魅族MX4、魅族 MX5、魅族 MX M031、魅蓝 note 2 M571C

  • NX(yunOS)、NX青橙(yunOS)

  • HTC T328d、HTC onex、HTC S710d、HTC X920e、HTC Desire

  • coolpad 8190、Coolpad5950

  • OPPO A31、OPPO R821T

  • 三星i9100、三星 GT-I9000、三星 GT-I9220、三星 GT-S5360、三星 GT-i9300、三星平板 Galaxy Tab S SM-T805C

  • 华为 C8650、华为 C8812、华为 MT1-U06、华为 PE-TL20(荣耀6plus)、华为荣耀5X、华为 A199、Honor U8860、荣耀6 H60-L01、华为 GRA-UL10、华为荣耀平板

  • 金立v182、GioNEE GN9000L、GioNEE GN9001L

  • iPhone4S、iPhone5C、iPhone5S、iPhone 6、iPhone 6 Plus、iPhone 7 Plus, iPad mini、iPad

  • nexus 5x、SONY S39h、AMOI N828、TCL S720T、Newman、中兴V960、小辣椒LA2-L、摩托罗拉ME863、读者 i800、昂达平板 V819mini

常见问题

  • autoplay自动播放受限(preload类似)

    据说Android4+和iOS6 - 9开始,禁用了非用户行为触发autoplay,chrome可以在flags里启用“停用媒体播放的手势要求”

    2016.11.17 苹果开发者官网的解释是:

    Warning: To prevent unsolicited downloads over cellular networks at the user’s expense, embedded media cannot be played automatically in Safari on iOS—the user always initiates playback.

    iOS10+,策略已发生改变,允许静音下自动播放webkit官方博客

  • 全屏播放受限

    插件的全屏按钮只是触发浏览器(或客户端浏览器内核)全屏事件,是否能全屏要看浏览器或客户端自身实现。

  • 黑边

    通常是poster图的尺寸比例和视频尺寸比例不一致,如果不能自己裁剪图的话,可以把poster图单拿出来,盖在视频上。

  • 音视频格式支持

    插件使用的浏览器自身的解码,具体解码要看浏览器自身对格式支持情况和播放时环境,通常浏览器支持情况见维基百科MDN

开源交流

  • QQ群:329474804