函数封装

如何快速的开发一个完整的iOS直播app(原理篇)

别来无恙 提交于 2020-01-19 01:04:27
目录 【如何快速的开发一个完整的iOS直播app】(原理篇) 【如何快速的开发一个完整的iOS直播app】(播放篇) 【如何快速的开发一个完整的iOS直播app】(采集篇) 前言 大半年没写博客了,但我一直关注着互联网的动向,最近会研究很多东西,并分享,今年移动直播行业的兴起,诞生了一大批网红,甚至明星也开始直播了,因此不得不跟上时代的步伐,由于第一次接触的原因,因此花了很多时间了解直播,整理了直播的原理,当前只是原理篇,后续会持续发布实战篇,教你从零开始搭建一个完整的iOS直播app,希望能帮助到更多的人更快的了解直播。 一、个人见解(直播难与易) 直播难:个人认为要想把直播从零开始做出来,绝对是牛逼中的牛逼,大牛中的大牛,因为直播中运用到的技术难点非常之多,视频/音频处理,图形处理,视频/音频压缩,CDN分发,即时通讯等技术,每一个技术都够你学几年的。 直播易:已经有各个领域的大牛,封装好了许多牛逼的框架,我们只需要用别人写好的框架,就能快速的搭建一个直播app,也就是传说中的站在大牛肩膀上编程。 二、了解直播 热门直播产品 映客,斗鱼,熊猫,虎牙,花椒等等 直播效果图 1.一个完整直播app功能(来自落影loyinglin分享) 1、聊天 私聊、聊天室、点亮、推送、黑名单等; 2、礼物 普通礼物、豪华礼物、红包、排行榜、第三方充值、内购、礼物动态更新、提现等; 3、直播列表

iOS:app直播---原理篇

懵懂的女人 提交于 2020-01-19 01:03:52
【如何快速的开发一个完整的iOS直播app】(原理篇) 转载自简书@ 袁峥Seemygo : http://www.jianshu.com/p/7b2f1df74420 一、个人见解(直播难与易)   直播难:个人认为要想把直播从零开始做出来,绝对是牛逼中的牛逼,大牛中的大牛,因为直播中运用到的技术难点非常之多,视频/音频处理,图形处理,视频/音频压缩,CDN分发,即时通讯等技术,每一个技术都够你学几年的。   直播易:已经有各个领域的大牛,封装好了许多牛逼的框架,我们只需要用别人写好的框架,就能快速的搭建一个直播app,也就是传说中的站在大牛肩膀上编程。 二、了解直播    热门直播产品:映客、斗鱼、熊猫、虎牙、花椒等等   直播效果图         直播效果.jpeg 1.一个完整直播app功能(来自 落影loyinglin 分享) 1、聊天 私聊、聊天室、点亮、推送、黑名单等; 2、礼物 普通礼物、豪华礼物、红包、排行榜、第三方充值、内购、礼物动态更新、提现等; 3、直播列表 关注、热门、最新、分类直播用户列表等; 4、自己直播 录制、推流、解码、播放、美颜、心跳、后台切换、主播对管理员操作、管理员对用户等; 5、房间逻辑 创建房间、进入房间、退出房间、关闭房间、切换房间、房间管理员设置、房间用户列表等; 6、用户逻辑 普通登陆、第三方登陆、注册、搜索、修改个人信息

JS 对象封装的常用方式

生来就可爱ヽ(ⅴ<●) 提交于 2020-01-19 01:00:58
JS是一门面向对象语言,其对象是用prototype属性来模拟的,下面,来看看如何封装JS对象. 常规封装 function Person (name,age,sex){ this.name = name; this.age = age; this.sex = sex; } Pserson.prototype = { constructor:Person, sayHello:function(){ console.log('hello'); } } 这种方式是比较常见的方式,比较直观,但是Person() 的职责是构造对象,如果把初始化的事情也放在里面完成,代码就会显得繁琐,如果放在一个方法里初始化会不会好点呢? 升级版 (常见) function Person (info){ this._init_(info); } Pserson.prototype = { constructor : Person, _init_ : function(info) { this.name = info.name; this.age = info.age; this.sex = info.sex; } sayHello:function(){ console.log('hello'); } } 可是,说到这里就发现,name,age,sex 并没有在Person里面申明,哪来的呢??? new

JS 对象封装的常用方式

耗尽温柔 提交于 2020-01-19 01:00:44
JS是一门面向对象语言,其对象是用prototype属性来模拟的,下面,来看看如何封装JS对象. 常规封装 function Person (name,age,sex){ this.name = name; this.age = age; this.sex = sex; } Pserson.prototype = { constructor:Person, sayHello:function(){ console.log('hello'); } } 这种方式是比较常见的方式,比较直观,但是Person() 的职责是构造对象,如果把初始化的事情也放在里面完成,代码就会显得繁琐,如果放在一个方法里初始化会不会好点呢? 升级版 (常见) function Person (info){ this._init_(info); } Pserson.prototype = { constructor : Person, _init_ : function(info) { this.name = info.name; this.age = info.age; this.sex = info.sex; } sayHello:function(){ console.log('hello'); } } 可是,说到这里就发现,name,age,sex 并没有在Person里面申明,哪来的呢??? new

面向对象(oop)

僤鯓⒐⒋嵵緔 提交于 2020-01-18 02:49:50
1 面向过程和面向对象(oop:object oriented programming) 面向过程 :—侧重于怎么做? 1.把完成某一个需求的 所有步骤 从头到尾 逐步实现 2.根据开发要求,将某些功能独立的代码封装成一个又一个函数 3.最后完成的代码,就是顺序的调用不同的函数 特点: 1.注重步骤和过程,不注重职责分工 2.如果需求复杂,代码变得非常复杂 3.开发复杂的项目的时候,没有固定的套路,开发难度很大 面向对象 :----侧重于谁来做? 相比较函数,面向对象是更大的封装,根据职责在一个对象中封装多个方法 1.在完成某一个需求前,首先确定职责–要做的事(方法) 2.根据职责确定不同的对象,在对象内部封装不同的方法(多个) 3.最后完成代码,就是顺序的让不同的对象调用不同的方法 特点: 1.注重对象和职责,不同的对象承担不同的职责 2.更加适合对复杂的需求变化,是专门应对复杂项目的开发,提供固定的套路 3.需要在面向过程的基础上,再学习一些面向对象的语法 面向对象的两个核心概念 类 :是一类具有相同特征或行为的事物的一个统称 对象 :由类创建出来的一个具体的存在 类和对象的关系 :先有类再有对象 类是模板 对象是根据这个模板创建出来的 类只需要有一个 对象可以有多个 类:属性(这一类事务的共同信息) 和 方法(你能完成的动作) 1.类名 :这类事物的名字(大驼峰命名法)

python 各种开源库

ぃ、小莉子 提交于 2020-01-17 00:06:05
测试开发 来源:https://www.jianshu.com/p/ea6f7fb69501 Web UI测试自动化 splinter - web UI测试工具,基于selnium封装。 链接 selenium - web UI自动化测试。 链接 --推荐 mechanize- Python中有状态的程序化Web浏览。 链接 selene - 使用Python + Ajax支持+ PageObjects + Widgets进行简明UI测试 链接 hitch - 基于服务的应用程序的高级集成测试框架。 链接 Needle - Css 自动化测试框架。 链接 seleniumbase - 端到端自动化测试框架。 链接 pytest_splinter - pytest spinter和selenium集成。 链接 Browsermob Proxy - Browsermob Proxy的python包装器。 链接 Selenium-Requests - 扩展Selenium WebDriver类以包含请求库中的请求函数,同时完成所有需要的cookie和请求头处理。 链接 移动测试自动化 appium - 移动端UI自动化测试。 链接 --推荐 uiautomator- 安卓UI自动化测试。 链接 ATX - 智能手机自动化工具。支持iOS,Android,WebApp和游戏。 网易出品

vue项目常用方法封装,持续更新中。。。

无人久伴 提交于 2020-01-16 12:30:32
vue项目中可以直接使用 1、常用工具类untils.js中 /* * 验证手机号是否合格 * true--说明合格 */ export function isPhone(phoneStr){ let myreg = /^[1][3,4,5,7,8,9][0-9]{9}$/; if (!myreg.test(phoneStr)) { return false; } else { return true; } } /* * 验证身份证号是否合格 * true--说明合格 */ export function isIdCard(idCardStr) { let idcardReg = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/ if (idcardReg.test(idCardStr)) { return true } else { return false } } /** * 验证车牌号是否合格 * true--说明合格 */ export function isVehicleNumber(vehicleNumber) { let xreg=/^

C++封装SQLite实例<三>

点点圈 提交于 2020-01-16 04:01:00
前一篇博客中介绍的是怎样依据sqlite3_get_table()函数来获取一张表的内容,就是一股脑的把表中的内容所有存储起来放在一个一维数组中,这其中的规则已经介绍过了。接下来讲的是怎样依据一个SQL查询语句来挑选出合乎选择条件的记录,被挑选出的记录事先是不知道的。你不知道这个查询的结果中有几行更不知道每一行中详细的记录值是什么,所以没办法用给定行值和列值的方式来获取数据,所有之前的用数组存储表的方式即可不通了。想要灵活的管理一个查询返回的结果这就会复杂多了,用到的SQLite原生函数也非常多。 这个CppSQLite3Query类中有四个字段,各自是 sqlite3 *mpDB; sqlite3_stmt *mpStmt; bool mbEof; //因为查询的结果须要一行一行的訪问,所以设置一个bool值来表示是否达到最后一行的结尾 int mnCols; //表示这个查询结果的列数,行数是无法得知的 第一个參数:查询要连接的数据库 第二个參数: ** CAPI3REF: SQL Statement Object ** KEYWORDS: {prepared statement} {prepared statements} ** ** An instance of this object represents a single SQL statement. ** This

js方法封装大全

空扰寡人 提交于 2020-01-15 02:41:11
/** * @version: v2.5.0 * @buildTime: Thu Jul 16 2015 17:36:29 GMT+0800 (中国标准时间) */ ( function ( global , document , S , undefined ) { var location = global . location , ua = navigator . userAgent , documentElement = document . documentElement , head = document . head || document . getElementsByTagName ( "head" ) [ 0 ] , isSupportConsole = global . console && console . log , noop = function ( ) { } , error = function ( msg ) { throw isError ( msg ) ? msg : new Error ( msg ) ; } , /** * 配置对象 * @type {Object} */ Config = { debug : location . search . indexOf ( "debug" ) !== - 1 ? true : false } ,

Java 封装 继承 多态

感情迁移 提交于 2020-01-14 03:25:27
Java 继承 继承的概念 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。 生活中的继承: 兔子和羊属于食草动物类,狮子和豹属于食肉动物类。 食草动物和食肉动物又是属于动物类。 所以继承需要符合的关系是:is-a,父类更通用,子类更具体。 虽然食草动物和食肉动物都是属于动物,但是两者的属性和行为上有差别,所以子类会具有父类的一般特性也会具有自身的特性。 类的继承格式 在 Java 中通过 extends 关键字可以申明一个类是从另外一个类继承而来的,一般形式如下: 类的继承格式 class 父类 { } class 子类 extends 父类 { } 为什么需要继承 接下来我们通过实例来说明这个需求。 开发动物类,其中动物分别为企鹅以及老鼠,要求如下: 企鹅:属性(姓名,id),方法(吃,睡,自我介绍) 老鼠:属性(姓名,id),方法(吃,睡,自我介绍) 企鹅类: public class Penguin { private String name; private int id; public Penguin(String myName, int myid) { name = myName; id = myid; }