自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 资源 (1)
  • 收藏
  • 关注

原创 从接口中返回二进制数据

通过设置 responseType 的值来规定返回的数据类型。将 responseType 设置为特定值时,要确保与服务器返回的数据格式是兼容的。如果不兼容,response 的值将是 null。“”空的 responseTye 字符串与默认类型 “text” 相同。response 是一个包含二进制数据的 JavaScript 的 ArrayBuffer。response 是一个包含二进制数据的 Blob 对象。document。

2022-11-14 09:41:23 1280 1

原创 ArrayBuffer、Blog、File的处理

在计算机中处理数据,最常用的数据类型就是字符串和二进制,字符串的处理是比较简单的,毕竟我们为类能看得懂,数据不对马上就能看出来,对 String 的处理方法也经常使用,不陌生。但是二进制数据是我们人类看不懂的数据,数据是否正确,不能一下子就看出来,略显陌生。在 JavaScript 中的经常用到的二进制的格式有三种:ArrayBuffer、Blob、File。在了解这三种二进制之前,先了解一个类 FileReader,这个类是用来读取计算上的文件的一个类,是用来读取二进制文件的类。

2022-11-14 09:33:21 1898

原创 解析 youtube 字幕2

上一篇讲了如何解析 YouTube 字幕,那个字幕对应的是 youtuber 自己设置好的字幕文件,字幕是标准的。在 youtube 上还有另外一种字幕是平台自动生成的。这种字幕文件不是以句子为单位,而是以单词为单位的。那么上一篇中的解析方法就不适用了。为此我又写了一个把不规范的字幕文件转为规范的字幕文件,然后再用上一篇的方法进行解析,最终生成标准的字幕文件。先来看一下自动生成的字幕是什么样的子的。可以看到每一个单词都是分开的,我们要的是一个完整的句子,就像下面的图。直接看代码吧,注释都写了。主

2021-02-12 14:01:34 546

原创 如何让吴磊、易烊千玺、肖站等小鲜肉围着你转

话不多说, 先上效果图接下来看如何实现。用到的知识点就是 css 中的 position 属性,以及 transform、transition 属性。代码不是很多就直接上代码码了,相关的注释也都写了,应该不难懂。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device

2021-01-02 16:56:48 212

原创 解析 youtube 字幕

我们在看 YouTube 视频的时候,经常有下载字幕的需求,一般会使用一些浏览器插件来帮助下载,但是这些插件经常会失效,又要重新去找其他的插件,很浪费时间。做为一个程序员,自己实现一个解析字幕的小程序还是不算难的。第一步:找到视频对应的字幕打开控制台,如上图选择 NetworkXHR点击 timedtext 那一条点击右边 Response这样就可以找到字幕文件了,把字幕复制到一个文件中,例如,subtitle.json第二步:解析 json格式分析json 的格式是这样的我们

2020-12-18 16:28:00 1106 4

原创 手机参数之屏幕

手机参数之屏幕在了解手机屏幕之前先了解一下显示器的原理:目前最普及的商用显示器从技术原理上分成两大类,分别是液晶显示器LCD(Liquid Crystal Display)和有机发光半导体OLED(Organic Light-emitting Diode)。目前这两类显示器的显示原理都是基于通过三基色组合成像素点的光学原理,像素点非常微小,并且非常密集,人眼视距在正常的范围是看不到像素点的。虽然原理是一样的,但是LCD和OLED组成最小发光单元的原理却有着本质上的不同。LCDLCD液晶显示器面板

2020-12-14 21:50:36 558

原创 Nodebb 开发1

Nodebb 开发 1中文文档搭建环境nodebb 环境的搭建在文档里面都有写,mac 环境下照着文档没有问题,可以顺利安装。但是在 windows 中照着文档的操作可能会一些问题,因为在下载一些包的时候可能需要科学上网。在安装 Scoop(windows 管理器)打开一个 具有管理员权限的 Powershell 窗口添加脚本执行权限 Set-ExecutionPolicy RemoteSigned -scope CurrentUser执行安装脚本 iex (new-obje

2020-09-18 17:26:43 303

原创 按条件提取文件内容

需求一个文本文档里面的内容有数字,英文,以及被 [] 包起来的英文从这个文档里面只筛选英文, 不包含被 [] 包起来的英文对于一行的字符小于一定长度的行,在输出时不换行,也就是如果一行的文字小于某一个长度时,与下一行合并成一行输出代码while read line; do #statements # 在写正则表达式的时候不用用引号括起来 # [^\[]]: 不包含 [] 行 ...

2019-11-13 17:12:29 502

原创 css 中 float 的属性及清除 float

简单的 html<body><div class="box1 "> <ul> <li>111111</li> <li>222222</li> <li>333333</li> <li>444444</...

2019-07-11 17:15:26 2471

原创 在 js 中 元素.style.top 无效果

有些问题遇到了才能真正理解在 js 中对 html 中的元素进行动态修改位置时,经常会用到 元素.style.top 这样的语句来实现,but ,在这里有一个坑。如果要修改的元素没有设置 position 属性的值的话,那么使用 元素.style.top 这样的语句是不起作用的。原因是 position 的默认值为 static,当 position 的值为 static 的时候会忽略 to...

2019-07-09 16:49:00 3596

原创 计算机网络笔记---windows 中的一些命令

命令cmd 命令详情netstat -n查看网络请求的会话的状态(如:浏览器访问网页)netstat -nb查看网络请求的会话的状态及名称nslookup查看提供域名服务的 DNS 服务器ipconfig /release释放DHCP 的租约ipconfig /renew重新申请 ip 地址ipconfig /all查看网络配置信息...

2019-06-21 16:27:23 147

原创 计算机网络笔记---8.Internet 上的音视频

8.Internet 上的音视频在 internet 上传输音视频面临的问题音视频占用的带宽高,需要网速恒定,延迟低。延迟对于非交互的音视频影响不大用缓存的方式解决带宽不稳定的问题internet提供的音视频服务在体上可以分为三种类型流式(streaming)存储音视频 —— 边下载边播节省客户端硬盘空间,不用下载保护视频版权流式,实况音视频—— 边录制边发送(直播)通过网络...

2019-06-21 16:24:54 208

原创 计算机网络笔记 --- 7.网络安全

7.网络安全安全包括哪些方面:数据存储安全应用程序安全操作系统安全网络安全物理安全用户安全教育计算机网络上的通信面临的四种威胁截获 — 从网络上窃听他人的通信内容 — 被动攻击中断— 有意中断他人在网络上的通信 — 主动攻击篡改— 故意篡改网络上传送的报文 — 主动攻击伪造— 伪造信息在网络上传送 — 主动攻击计算机机的威胁 —— 恶意程序(rog...

2019-06-21 16:23:43 1480

原创 计算机网络笔记---6.应用层

6. 应用层1. 域名系统 DNS(Domain Name System)DNS 服务的作用:解析域名,把域名解析成 IP 地址的主机能够正常获取 IP , DNS , 网关等。DNS 的解析过程![DNS 的解析过程](/Users/limiao/personal/notebook/计算机网络/学_图片/DNS 的解析过程.png)安装自己的 DNS 服务器的三种场景:解析内网...

2019-06-21 16:20:50 169

原创 计算机网络笔记 --- 5. 传输层

5. 传输层TCP(可靠传输) — 分段、编号、流量控制、建立会话UDP(不可靠传输) — 一个数据包就能完成数据通信 、不建立会话、多播传输层和应用层的之间的关系http = TCP+80https = TCP +443ftp=TCP+21SMTP = TCP +25POP3 = TCP+110RDP=TCP+3389共享文件夹=TCP+445SQL=TCP+1433应用...

2019-06-21 16:19:05 354

原创 计算机网络笔记----4.网络层

4.网络层网络层提供的两种服务网络层关注的是如何将分组从源端沿着网络路径送达目的端。在计算机通信中,可靠交付由端系统负责。网络层提供的两种服务:虚电路服务虚电路表示这只是一第逻辑上的连接,分组都沿着这务逻辑按照存储好的发送方式传送,而并不是真正建立了一条物理连接电路交换的电话通信是先建立了一条真正的连接。因此分组交换的虚连接和电路交换的连接只是类似,但并不完全一样。数据...

2019-06-21 16:16:39 210

原创 计算机网络笔记---3. 数据链路层

3. 数据链路层数据链路层基本概念及基本问题数据链路层使用的信道主要有以下两种类型:点对点 — 这种信道使用一对一的点对点通信方式广播信道 — 这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。链路与数据链路链路是一条点到点的物理线路段,中间没有任何其他结点。一条链路只是一条通路的一...

2019-06-21 16:10:56 846

原创 计算机网络笔记----2.物理层

2. 物理层物理层的基本概念物理层解决如何在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体(如,光纤,电缆等)。物理层的主要任务描述为:确定与传输媒体的接口的一些特性,即:机械特性:如,接口形状,大小,引线数目电气特性:如,规定电压范围(-5V到+5V)功能特性:如,规定-5V 表示0,+5V 表示1过程特性:也称干什么呢特性,规定建立连接时各个相关部件的工作步骤...

2019-06-21 16:07:47 191

原创 计算机网络笔记 --- 计算机网络概述

1. 计算机网络概述计算机网络网络:许多计算机连接在一起互联网:许多网络连接在一起因特网:全球最大的一个互联网ISP :Internet 服务提供商(如移动、联通、电信等)因特网的组成边缘部分(主机之间的通信方式)客户服务器方式(client/server —c/s)对等方式(peer to peer — p2p)每一个计算机都可以是客户端也可以是服务端...

2019-06-21 11:31:38 312

原创 OkHttp Interceptor 的迭代递归实现的简化

OkHttp 的拦截器,那一块的代码很多,也比较复杂,在 debug 的时候好多个类来回跳,看的很懵,其实把整个框架拿出来,简化一些之后再看,就清晰多了。下面就是一个简化后的,为了更容易理解,对应的类名还是用了 OkHttp 中的类名,返回的值直接用 String。首先是定义一个接口public interface Interceptor { // 拦截 String in...

2019-04-14 15:45:43 177

原创 ffmpeg 裁剪视频

前言之前写过一篇用 shell 脚本与 ffmpeg 结合,批量把视频切割成指定时长的多个视频片断,当时写的那个脚本只支持这一个小功能,写的粗糙,原视频的总时长也没有获取到,还需要手动填写。这次在那个的基础上添加了自动获取视频分辨率、时长,并且按指定的宽高裁剪视频的中间部分的画面(在这个 demo 中是这样设置,可以根据需要改为指定部分的画面,原理就是计算指定画面在原视频中的比例)的功能。正...

2019-04-13 18:43:37 5917 1

转载 编译注解 ---实例

这个 demo 是这篇博客里的一个例子,光看没看懂,又照着写了一遍也还是很懵,为了更好的理解,几乎把每一句核心代码都打印,都注释了,这样才略懂了一些在编译时生成代码这个流程。下面这个方法是最懵的,所以注释写了很多,里面的各种元素都比较抽象,看的时候,甚至是第一次写的时候,都不知道在写什么,通过打印把抽象的东西,还原成我们熟悉的东西就好理解多了。 /** * * @pa...

2019-03-20 14:58:05 151 2

原创 mac 手动安装 gradle

在 gradle 的官网里提供了两种安装方式,一种是用 brew 安装,一种是手动安装。用 brew 安装实在是太慢了,所以我选择用 gradle 安装。安装并不难,重要的是路径的配置,坑了好多次了,这个坑必须填一下了。下载 gradle解压文件配置路径终端配置,只能在当前会话内使用,关闭后,再打开,需要重新配置export PATH=$PATH:gradle 的路径(如...

2019-03-08 23:15:42 782

原创 Activity 的启动模式

standard 标准模式, 不指定时默认singleTop 栈顶复用模式,如果当前 Activity 已经处于栈顶,则不会创建新的该 Activity 实例,测试时就是处于 栈顶的 Activity 自己启动自己(实际中还没遇到这种情况)singleTask :栈内复用,当该 Activity 被启动时,它之上的其他 Activity 实例都会被清除。singleInstance:加强的...

2018-12-11 15:36:51 98

原创 文字轮播

文字的轮播,一种是跑马灯效果,文字字数超过了 TextView 可容纳的最大字数,并且为 TextView 设置了ellipsize=“marquee”,这时就可以实现文字轮播的效果了。另外一种效果是显示文字集合,每条数据上下滚动或是左右滚动。这种效果也是本篇的主要内容。这是封装后的,里面包含一些设置属性的方法,为了使用更简单方便一些。使用的控件是 TextSwithcer。/** * Cr...

2018-12-07 09:49:42 1324

原创 屏幕的一些高度值

屏幕的高度(1920px)//屏幕DisplayMetrics dm = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(dm);Log.e("MainActivity", "屏幕高:" + dm.heightPixels);顶部状态栏的高度(66px)// 状态栏的高度int s...

2018-11-30 10:16:41 1252

原创 web view 截图

截取整个 webview 的内容(包括未显示的部分)在实现之前需要了解几个概念webview.getContentHeight()Gets the height of the HTML content. 获取到的是 html 内容的高度,但是这个值的单位不是 px,而是 dp,所以不能直接拿来就用,需要先转换成 px,后面再说。webview.getWidth()...

2018-11-29 10:43:31 191

原创 webview 遇到的坑 ---- 主要是 js 的使用

通过调用 js 的一些方法,控制网页的显示状态,以及一些 js 的方法执行网页中的事件,点击事件,焦点事件,移除某个属性、某个方法等当需要只显示网页中的一部分,并且不能滑动时 // 取消webiew的滑动事件,webview不可滑动 mWebView.setOnTouchListener(new View.OnTouchListener() { @Override ...

2018-11-27 14:30:18 589

原创 状态栏和导航栏的设置

其中有些值是要相互配合使用,单一使用没有效果,需要的时候查找文档,都有解释, 或是多尝试几次,也就知道该用哪个了。// 沉浸式状态栏 if (Build.VERSION.SDK_INT &gt;= Build.VERSION_CODES.LOLLIPOP) { //5.0以上使用原生方法// window.clearFlags(Wi...

2018-11-16 10:30:38 1028

原创 item2 设置主题后颜色没有变化

item2 设置主题后颜色没有变化如上图是设置了主题后的 item2 窗口,文字的颜色还是白色的,并没有变成主题色。第三处的值设置成最大就会导致 item2 中的文字全是白色,把该值减少就会出现不同的颜色...

2018-11-15 16:48:51 2166 3

原创 Tablayout 和 ViewPager 联用时,向 Fragment 传值的问题

在做项目的时候,用到 Tablayout 和 ViewPager 联用,ViewPager 里面是复用的几个 Fragment,需要的功能是切换 viewpager 时,传入相应的 position 到 fragment。mVp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override pu...

2018-07-10 20:51:37 2768 2

原创 handler.postDelayed() 的执行过程

今天做项目看到这段代码时产生了一些疑惑,又打开 Handler 源码看了看相关的逻辑。简短的几行代码背后却有着复杂的逻辑。真是越看越爽啊!!!new Handler().postDelayed(new Runnable() { @Override public void run() { // do something }},2000);handler...

2018-04-26 19:35:25 3623 1

原创 用 ffmpeg 实现批量剪切视频

一直对编辑视频很有兴趣,上大学的时候学了一些视频剪辑的软件,已经好久没用了,现在也都忘的差不多了。前段时间弄了个头条号,想发一些视频,就又想做视频这回事了,要不还真快忘记自己曾经做过一些小视频了(捂脸)。其实现在想要做的视频,不需要做很多特效,也不需要做配字幕等这些内容,所以不是很难,但是要做的量比较多,算起来要花费的时间也不算少,但是又不想在这件事上浪费太多的时间,嗯,这个时候懒的特质就该展示它

2018-01-28 21:09:54 14377 2

原创 Toast 解决连续显示

Toast 是 Android 开发最常见的组件之一,经常用 toast 来显示一些提示信息,但在开发中经常有这样一个问题:连续点击某个按钮,toast 会一直现,如果点击的次数很多,可能会有十几秒的时间都在显示 toast,这样的用户体验就不是很好。Toast.makeText(MainActivity.this, "", Toast.LENGTH_SHORT).show();上面的这种创建方法

2017-12-16 17:07:42 2920

原创 判断字符串是否为空

判断字符串是否为空是在 Android 开发中是最长用的一个判断,判断时也经常会看到有不同的判断方式,今天专门研究了一下,记录下来。先定义一个字符串,private String s;这种定义方式是我们学用的方式,那么这样定义时在字符串时,该怎么判断它是不是空呢?来用代码验证一下:if (s == null){ Log.e("MainActivity", "s == null");}els

2017-12-13 23:51:36 682

翻译 ViewGroup.MarginLayoutParams

Class Overview(类概述)layouts 的每个子 layout 信息都支持 margins。参考 ViewGroup Margin Layout Attributes 列举了该类支持的所有子 view 的属性。XML Attributes(XML 属性)android:layout_marginBotton在该 view 的底边指定一个特定的空间。这个空间是在 view 边界的外部。m

2017-07-02 17:52:20 946

翻译 ViewGroup.LayoutParams

Class Overview(类概述)LayoutParams 是 views 用来告诉它的父容器,它们在父容器中是如何摆放的。参考 ViewGroup Layout Attribute ,列举了该类支持的所有子 view 的属性。LayoutParams 基类仅仅描述了 view 对宽度和高度的要求。对于每个方面,可以选择以下的一个:FILL_PARENT :意味着 view 要设置成与它的父容

2017-06-30 13:45:44 1753

原创 带删除按钮的 EditText

一个带删除按钮的 EditText 在各种 APP 中随处可见,比如,搜索框、登录时用户名与密码的输入框等等。在没有自己实现之前,想法是这样的:在 EditText 中的添加一个 Drawable 然后给这个 Drawable 添加一个监听事件,当点击 Drawable 时设置 EditText 里的字符串为空。当要实现的时候却发现 Drawable 没有点击事件,所以这个方法是行不通的。那么只好通

2017-06-21 11:56:33 488

翻译 Object

Class Overview(类概述)这个类是 Java 类等级中的根。所有非初级的类型(包括数组)都是直接或间接继承这个类。按照以下这种风格写一个规范的 equals 方法: // Use @Override to avoid accidental overloading. // 使用@Override 为了避免意外的过载 @Override public boolean equals(Obj

2017-06-02 16:00:16 206

翻译 File

Class Overview (类概述)一个由路径名确定文件系统实体的“抽象”表示。这个路径名可能是绝对路径(相对于文件系统的根目录)或是相对于程序运行的当前路径。文件所引用的实际文件可能存在也可能不存在。它也可能是忽略文件的名称,只是一个目录或是一个非常规的文件。这个类提供了有限的函数来获取或设置文件的权限,文件的类型,文件的最后修改时间。当 Android 字符串转换为 UTF-8 字节序列时,

2017-05-07 15:42:06 444

ffmpeg 裁剪、切割视频

使用 shell 和 ffmpeg 结合,实现自动获取视频分辨率、时长,并且按指定的宽高裁剪视频的中间部分的画面的功能。

2019-04-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除