微信小程序

基于WebRTC 技术实现的系统与实践应用

生来就可爱ヽ(ⅴ<●) 提交于 2020-11-25 18:27:50
WebRTC全称Web Real-Time Communication,它并非是一个“拿来即用”的“端到端”开源解决方案,如果你以为只需要在web端写几行JavaScript就可以实现浏览器之间的音视频通信,那是不能可能的。 但事实上WebRTC能给人更多惊喜,他既不是“解决方案”,也不是某种代码库。它并不是单一的协议,包含了媒体、加密、传输层等在内的多个协议标准以及一套基于JavaScript的API,通过简单易用的JavaScript API,在不安装任何插件的情况下,让浏览器拥有了P2P音视频和数据分享的能力。 随着直播的发展,直播实时互动变得日益重要,青犀视频凭借多年的流媒体音视频研发经验,结合实际需求,开发出了EasyRTC音视频会议通话系统,支持一对一、一对多等视频通话,无需安装客户端与插件,纯H5在线视频会议系统,支持微信小程序、H5页面、APP、PC客户端等接入方式,极大满足语音视频社交、在线教育和培训、视频会议和远程医疗等场景需求。 EasyRTC为什么要基于WebRTC来拓展研发,主要有四个原因:1.开源、免费,开发者不需要承担高昂的专利费用;2.基于浏览器,不需要安装插件,只要调用就可以实现音视频互动;3.被纳入了HTML5标准,主流浏览器全面支持WebRTC;4.WebRTC极具价值的技术之一,支持722,PCM,ILBC,ISAC等编码,在VoIP上

用户为先,看海外开发者如何提升用户体验|Google Play 开发者播客节目更新

馋奶兔 提交于 2020-11-25 11:51:23
本次向您推荐 Apps, Games & Insights 两期节目,各具精彩,不容错过。 通过 Firebase 为您的用户提供高质量体验 您是否好奇过,通过外卖 APP 购买到的食物,是如何到达您手中的?这其中有哪些幕后工作?在开发领域,对于用户获取和用户留存,交付高质量的应用是获得业务成功的关键因素。那么,开发者该如何确保用户获得应有的高质量体验呢?为了探索这个问题,在本期节目中,美食外卖公司 Deliveroo (户户送) 的高级软件工程师 Maria Neumayer 和 Firebase 的产品经理 Shobhit Chugh 共同探讨了企业该如何纠正测试和生产环节中的质量问题。 节目嘉宾 点击下方节目链接,即刻收听! 节目地址: https://0x7.me/Df4tY * 本播客为英文节目。 借力多种语言,打造平等普惠的应用 如何通过产品来展现我们的多样性和包容性呢?在本期节目中,Daniel Farkas (Co-founder and CEO, Drops ) 和 Drew Banks (Chief Customer Officer, Drops) 将与我们共同探讨: Drops (语言学习应用) 如何积极的促进多元化和包容性,以及如何借助将多种语言纳入 Drops 的机会来体现人类的多样性。 节目嘉宾 点击下方节目链接,即刻收听! 节目地址: https:/

Netflix基于云的微服务架构设计分析

那年仲夏 提交于 2020-11-25 10:46:33
Netflix的微服务架构为其提供全球视频流服务,本篇文章将对此架构进行全面的系统设计分析。 1. 简介 Netflix多年来一直是全球最出色的在线订阅制的视频流服务之一,其占世界互联网带宽容量的15%以上。2019年,Netflix已经获得了超过1.67亿的订阅用户,每个季度新增用户超过500万,服务涵覆盖全球200多个国家或地区。更具体点说,Netflix的用户每天要花费超过1.65亿小时观看4000多部电影和47000多集电视剧。这些令人印象深刻的数据从工程设计的角度来看,Netflix的技术团队已经设计了一个惊人的视频流系统,其具有高可用性和可扩展性,以服务其全球客户。 然而,这可是其技术团队花费了超过8年的时间才将他们的IT系统升级到现在的规模。事实上,Netflix的基础架构转型始于2008年8月,触发点是当时数据中心的服务中断导致整个DVD租赁服务关闭了三天。Netflix意识到它需要一个没有单点故障的更可靠的基础架构。为此,它做出了两个重要的决定:将IT基础架构从其数据中心迁移到公有云,并使用微服务架构的小型可管理软件组件替换其单体应用程序。这两个决定直接塑造了Netflix今天的成功。 Netflix选择AWS Cloud来迁移其IT基础架构,因为AWS可以在全球范围提供高度可靠的数据库、大规模云存储和多个数据中心。通过使用AWS建立和维护的云基础架构

【面试说】一年半前端 Bigo 一二三 面

心不动则不痛 提交于 2020-11-25 05:46:29
前言 笔者其实是三月份就面的 Bigo ,当时工作经验算一年半多。之所以现在才发,其实是之前虽然总结了,但多半是自己总结归纳复盘用,有点粗糙,现在重新整理,希望对大家有所帮助 一面 说说 Javascript 的数据类型 最新的 ECMAScript 标准 定义了 8 种数据类型 原始数据类型:Boolean、Null、Undefined、Number、BigInt、String、Symbol 引用类型:对象( Object )。其中对象类型包括:数组( Array )、函数( Function )、还有两个特殊的对象:正则( RegExp )和日期( Date ) 加分项: BigInt 和 Symbol 类型 BigInt 是一种数字类型的数据,它可以表示任意精度格式的整数。由于 Number 类型的局限性。Number 类型的局限性(JavaScript 中的 Number 是双精度浮点型,这意味着精度有限,如下所示) const max = Number.MAX_SAFE_INTEGER; // 9007199254740991 max + 1 // 9007199254740992 max + 2 // 9007199254740992 注意 max + 1 === max + 2 ,这是不对的 BigInt 就是解决此类问题 Symbol 类型的使用场景 Symbol

《ERP真的免费不花钱·企业自主实施OdooERP》试读:第十章-仓库条码操作案例

陌路散爱 提交于 2020-11-24 20:06:54
文/开源智造联合创始人老杨 本文来自《企业自主实施OdooERP》的试读章节。书籍尚未出版,请勿转载。欢迎您反馈阅读意见。 案例背景 各位读者同学,本案例假定读者已经完成了进销存案例练习。在进行本案例学习之前,请先完成之前的进销存入门案例,否则可能有些操作步骤会看不懂。 极安网络业务需求 上海极安网络科技有限公司通过网络渠道,主要是微商,研发和销售弹力素系列产品。出于产品防伪防串货,以及卫生安全方面需要,极安网络希望实现每一盒产品从出厂到经销商,到消费者都可以全程追溯。极安网络仓库物流业务如下: 1. 弹力素外包装上每一盒都印刷了唯一防伪码,每个盒子的防伪码都不一样; 2. 外协车间生产好产品以后,打包成箱,弹力素一箱24盒。此处要求记录每一箱包含的24个防伪码(建立箱号和盒子的关系); 3. 车间打包成箱的弹力素发货到极安仓库,极安仓库按箱收货。此处希望实现扫描箱码收货; 4. 经销商销售发货。收到经销商订单(微信小程序下单)后,仓库按先进先出原则拣货。销售出库都是整箱出货,不会拆箱。此处希望实现系统按先进先出原则提示出哪个箱号,以及该箱号放在哪个位置,方便仓库人员拣货。仓库出库要求扫描箱号出库。 极安网络WMS上线工作规划 极安网络WMS系统上线工作,有基础数据准备和基本业务测试两项工作; 基础数据准备: 1. 硬件准备,需要一个USB接口扫描枪,连接电脑,用于车间扫码打包

微信小程序 mpvue + picker

僤鯓⒐⒋嵵緔 提交于 2020-11-24 20:05:55
用mpvue框架和原生的微信小程序有一定差异性,之前在做选择器的时候用原生的方法怎么都不行,最后找到了解决办法。 数据为数组,代码如下: <template> <div class="cost-estimation"> <view class="section"> <picker mode="selector" @change="bindPickerChange" :index="index" :range="array"> <view> 当前选择的国家:{{array[index]}} </view> </picker> </view> </div> </template> <script> export default { data () { return { array: ['中国', '美国', '日本', '韩国'], index: 0 } }, methods: { bindPickerChange: function (e) { console.log('picker发送选择改变,携带值为', e) this.index = e.mp.detail.value } } } </script> 数据为数组对象,代码如下: <template> <div class="cost-estimation"> <view class="section"> <picker

mpvue小程序开发之 wx.getUserInfo获取用户信息授权

浪子不回头ぞ 提交于 2020-11-24 19:52:57
一、背景 在使用美团的mpvue2.0框架搭建起小程序项目后,做获取用户信息时遇到一些问题:微信小程序更新api后,获取用户信息只能通过button上的绑定方法 来获取用户信息,vue上方法绑定不能直接使用,下面是修改配置mpvue的步骤 vue中代码: <template> <div> <button open-type="getUserInfo" @getuserinfo="bindgetuserinfo">用户授权</button> </div> </template> <script> export default { methods: { bindgetuserinfo: function (e) { console.log(e) } } } </script> <style></style> 配置mpvue中获取用户信息的步骤 1. 进入到node_modules --> mpvue --> index.js,操作index.js文件 2. 操作LIFECYCLE_HOOKS 在 LIFECYCLE_HOOKS 字段中添加'onGetUserInfo' 在initMP(方法里判断 mpType 格式时除 app component 的 else 里添加方法) 实现: 来源: oschina 链接: https://my.oschina.net/u/4399698

互联网大厂的如厕自由

放肆的年华 提交于 2020-11-24 12:54:41
Python实战社群 Java实战社群 长按识别下方二维码, 按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群 ▲ 作者丨水影月 来源丨大飞码字 说到互联网公司,大家的第一反应,可能就是,工资高,福利好,996。 很多互联网公司,尤其是大厂,虽然工资高,福利好,办公地点也十分高大上。 但,美中不足的是,坑位太少。导致很多互联网人无法实现“如厕自由”,甚至,还出现了某些公司的员工把大号拉在了小便池中的无奈。 这一次,《人物》把笔尖转向“互联网人”的膀胱--“如厕自由”的焦点上,引发了不少互联网“打工人”的共鸣。 毕竟,带薪拉屎,可是“打工人”的梦想。 身为互联网打工人,上班最爽的摸鱼时刻,莫过于“带薪拉屎”。 有网友简单粗暴地算了一笔账:每天去公司20分钟上厕所,每月22天,一年就是5280分钟。 如果按一天工作8小时计算,那就相当于11天带薪年假。 所以,“带薪拉屎”对员工来说,算是不小的福利。然而,对公司来说,却是一笔不小的成本。 好吧,既然没法从思想上打消员工“带薪拉屎”的想法,那就在行动上进行“改造”。 《互联网大厂的厕所难题》这篇文章就是基于这样一个背景下,采用以小见大的方式,从Pdd、快手、360等互联网大厂的办公楼厕所制度出发,来说明效率对互联网企业员工的压迫-- 在管理者的眼中,厕所是效率的敌人。 厕所是效率的敌人

优秀的人值得一试,不输AirPods的蓝牙耳机!

扶醉桌前 提交于 2020-11-24 08:45:20
精选好物推荐 通话智能降噪,全程畅通无阻聊天 双耳听歌连续6小时续航! 倍 思Baseus 真无线双耳蓝牙耳机 蓝牙5.0,信号更强,传输快速稳定,不断连 HiFi音质,音质还原度高,音质好 DSP降噪设计,通话听得更清晰 硅胶双耳帽,触控设计,入耳式设计 隐形迷你,戴着舒适,久戴也没有胀痛感 自带2000毫安充电仓电池容量 防汗防水 ↓↓↓ 适用于苹果/华为/oppo/荣耀/vivo/小米 安卓手机通用 限时特价:165元/2只 长按识别下方小程序码,立即抢购! 精选好物推荐 不输AirPods的蓝牙耳机 入耳一秒进入演唱会现场! 倍 思Baseus 单耳蓝牙耳机 超迷你单边蓝牙耳机 真无线、蓝牙5.0眨眼即连 HiFi沉浸音质+6D音效 DSP降噪,听歌通话超清晰 双耳帽设计,佩戴舒适不易掉 适用于苹果/华为/oppo/荣耀/vivo/小米 安卓手机通用 ↓↓↓ 限时特价:69元/1只 长按识别下方小程序码,查看更多商品详情 本文分享自微信公众号 - 印象Python(Python_logic)。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“ OSC源创计划 ”,欢迎正在阅读的你也加入,一起分享。 来源: oschina 链接: https://my.oschina.net/u/3742960/blog/4461229

「真香警告」鱼头手摸手教你在小程序里用composition-api

谁说胖子不能爱 提交于 2020-11-24 05:59:46
使用 使用起来应该像是这个样子 wxue(options) setup 配置应该是包含一个 setup 选项是一个函数,返回的函数可以 this.xxx 调用,返回的数据可以 this.data.xxx 用到,如下 import { wxue, reactive } from 'wxue' wxue({ setup(options) { const test = reactive({ x : 1 , y : 2 , }) setInterval( () => { test.x++ }, 1000 ) return { test, } }, }) ref api 应该有如下api reactive ref unref toRef toRefs computed watchEffect watch 各种钩子,与小程序生命周期一致 示例 import { wxue, nextTick, ref, onShow } from 'wxue' function useAutoAdd ( x ) { const b = ref(x) setInterval( () => { b.value++ }, 1000 ) return b } wxue({ data : {}, setup(options) { const b = useAutoAdd( 2 ) onShow( () => {