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 🙏

© 2026 – Pkg Stats / Ryan Hefner

yh-av-pc2

v1.3.4

Published

## Project setup

Readme

testwebuiadmin

Project setup

npm install

Compiles and hot-reloads for development

npm run serve

Compiles and minifies for production

npm run build

Lints and fixes files

npm run lint

Customize configuration

See Configuration Reference.

url 这些配置自会所以要放到 static,主要是为了后续线上修改方便,因为代码不会被加密(有问题,如果在项目中引用了这个文件,那么还是会被打包,根本不会从外部文件读取) 只能在 html 里面手动添加 config 文件引入,作为全局变量,然后项目中不要再引入 config

要区分 url 调用和组件调用 url 可以手动引入 config,组件调用不行,组件调用还是只能用内部打包读取; npm run build npm run lib 首先,config 全局和打包变量名要分开, config.js 保存全局变量,不打包,手动插入 config-lib.js 保存包内变量,项目中引入 变量名为_AV_GLOBAL_BASE_URL 和 baseUrl 在 config-lib 中定义方法 getBaseUrl(){ // 如果没有检测到这个变量,说明没有引入 config 文件,那就用内部变量定义,如果检测到了说明引入了,用全局变量 if(typeof _AV_GLOBAL_BASE_URL === 'undefined') return baseUrl return _AV_GLOBAL_BASE_URL }

然后,在项目中,统一全部使用 getBaseUrl() 方法获取路径

api 要针对 control 和 sdk 分开文件保存到 api 目录

v1/roomManage/st?Action=$room$create

接口超时 超时的问题也要捕捉下来 提供重试的可能性,并且要检测超时,然后进行提示

浏览器接手消息,一定要区分类型,因为这是一个公共的方法,任何发送消息都从这里接手,一定要区分 比如:if( typeof msg.data.isYhVideo !== 'undefined'){}

作为组件方式调用的时候,如果实在 dialog 里面,则会报错,可能是因为初始化数据的问题。只能直接放在页面上。

还有组组件的结构流程有问题,作为组件使用时,如果不传入 roomId,还要强制刷新整个页面。

还有就是作为组件时,css 竟然有全局样式定义,引入后会影响整个页面的样视

作为组件时,如果顶部出现 百度 微信 扩展条,则会挤压视屏框和工具栏,导致工具栏有一半被遮挡

env.development 是否还可以生成其他自定义后缀?用于不同环境,比如 onlinetest、onlinedemo 线上测试、线上演示

不能有外界控制精确大小,因为涉及到太多的子组件位置,外界只能设置容器的大小,然后 video 自动占满(自适应)。 外界可以设置横屏、竖屏,这个设置不影响内部大小,只影响组件出现的位置和显示。

所有组件支持横屏、竖屏

彻底删除 element-ui,全部使用 Kangaroo 组件

scene 不要直接控制组件的样视和显示,应该是控制 screenMode、 displayToolBar = true 这类参数,然后不同模式就可以进行非常细节的控制了 displayMode 改为 screenMode,

不能将 screenMode 和 scene 混为一谈 screenMode 控制横向和竖向的摆放,不能太复杂,因为要用于程序中判断。如果模式太多,根本判断不过来。 scene 为业务场景,比如:scene=正常模式,那么正常模式控制 screenMode、displayToolBar = true 这类参数


所有的接口返回提示,必须带各个系统的特征码!!!


screenMode 窄屏 并不是等于支持手机端,仅仅只是 PC 端上符合样视而已; 因为 h5 调用摄像头和音频还存在权限问题,所以还是要哟个小程序来解决 只有三种调用方式: pc url 调用,pc 组件调用 app 内嵌 url 调用 小程序调用


模式分为 一对一、会议、直播

画中画只能在标准布局中启用,在其他布局中毫无意义 画中画只能在一对一模式中使用,其他模式中毫无意义

一对一模式:强制启用拨号模式、启用画中画,禁止切换布局(只能标准模式) 会议模式:强制关闭拨号模式、关闭画中画,允许切换布局 直播模式:强制关闭拨号模式、关闭画中画、禁止切换布局(只能 1 屏模式)、关闭所有用户摄像头、禁止发言

关于各种模式的处理: 1、主屏和用户列表 概念上分开,因为列表中也有自己,所以在组件上要分开对待 2、切换布局,是增加不同的主屏,然后隐藏列表 3、只有标准布局才有列表,其余的一律隐藏 4、主屏要根据模式,分为不同组件:会议主屏、一对一主屏、直播主屏(可以用会议),根据不同模式显示不同主屏组件即可。是不是可以不用分不同的组件,就弄成小组件,根据参数配置设置行为就行了。(还是要分开,每种模式、每种布局都要分开处理) 5、control 不要设置什么 focususer 或者 screenuser,直接俄让组件根据当前情况自行判断就行了,因为 control 中需要判断的情况太多了,对以后的维护和扩展是个很大的问题。 6、用户列表显示跟标准布局走,因为其他模式都不需要

部分不想让样视发生变化的,一定要用 px

文档要从每个页面对比说明,改进了那些东西

参数配置 options 还要进一步分组保存,不然太他妈多了

_initOptionsExToolbarItems 里面替换参数还有问题,还没搞清楚 largeScreenUser

1、如果创建了房间,要把房间 id 传给调用方 -ok

2、要设置一个字段,精简消息模式,比如在一对一模式下,很多提示就显得莫名其妙,这样干脆就不提示,只提供最关键的信息提示 -ok

4、不能使用目前的加载方式,这样会导致组建的 store 和调用方的 store 混在一起 -ok

6、avControl 最好不要全局,control 只能引入调用,因为他跟 store 不一样,store 是 vue 内置的,可以自动向下传递,contro 不行,而且又不能全局,所以只能引入调用 -ok addEvent 不要这么长,采用 props 方式分开设置 -ok

7、不要把整个 control 暴露出去,应该在 YhAvPc 中指定暴露,因为调用者不清楚内部状况,如果错误调用 control 或造成不可预知的错误,所以必须限定暴露的方法 -ok

8、一对一模式还需要做些限制,比如只允许两人加入,设一个最大人数,打到人术后锁定房间,禁止加入 -ok

9、要不要前端的下层方法中加权限验证? -ok 因为即使加了,也不能百分百防范,因为接口没有验证,所以,只要在前端浏览器修改节点,调用 js 方法,就可以直接像接口发送数据,这就是后端不验证的后果。 前端只在高层加权限判断,下层方法一律不要加

可以重复 init,只需要提前把所有参数全部重置 -ok

5、提示最好在组件剧中,而不是屏幕剧中 -ok 3、用户的加入、退出,都要触发事件 -ok

对组件外传的时间参数,必须要复制一个,不能直接传,万一外部修改了就糟糕了 -ok 用户列表要做一个对象保存,提高查找性能 -ok

视频狂大小还是有问题,始终不对