- 博客(46)
- 收藏
- 关注
原创 ffmepg介绍(二)——解码
全局注册所有内置的音频/视频编解码器(如 H.264、AAC、MP3 等),使得后续通过编码 ID 或名称查找解码器时能直接匹配到已注册的编解码器。在最新版本的 FFmpeg(如 FFmpeg 4.0 及以上)中,avcodec_register_all() 已被标记为弃用(deprecated)•:在调用任何编解码器查找函数(如)前,必须确保已调用此函数注册所有编解码器。•:FFmpeg 默认会在程序启动时自动注册编解码器,但在某些动态加载场景(如插件化支持)中可能需要手动调用。根据。
2025-03-23 14:04:26
700
原创 ffmpeg介绍(一)——解封装
时间基是一个分数,形式为 AVRational {num, den},表示每个时间戳的单位是 num/den 秒。例如:如果 time_base = {1, 1000},那么每个时间戳的单位是 1/1000 秒(即 1 毫秒)。如果 time_base = {1, 90000},那么每个时间戳的单位是 1/90000 秒(常见于 MPEG-TS 流)。其中av_q2d是 FFmpeg 提供的函数,用于将AVRational转换为浮点数。示例假设,即1/1000,表示时间单位是毫秒。
2025-03-22 14:18:56
1077
原创 IntersectionObserver接口介绍
是浏览器提供的一个用于异步观察与(Viewport)交叉状态(即是否进入或离开视口)的接口。在出现之前,开发者通常需要通过监听scroll事件或使用 getBoundingClientRect方法来判断元素是否进入视口。通过创建一个观察器实例。当目标元素的时触发的回调函数。options配置对象,用于指定观察器的行为(可选)。通过开始观察目标元素。通过停止观察目标元素。回调函数会在以下情况下触发:目标元素进入或离开视口。目标元素的交叉比例(intersection ratio)发生变化。
2025-03-08 22:08:41
391
原创 浮动与清除浮动
是指在CSS中使用特定的方法来解决float对的影响。浮动元素会脱离文档流,这可能导致父元素的高度无法自动适应其内容,出现高度塌陷现象。
2025-02-28 17:00:40
322
原创 React简单了解
例如,假设我们有 3 个并排的图像(请参见下面的代码游乐场)。所以如果你在expression slot中做一些条件判断的语句,它会发生错误,但这错误并不是jsx不允许,而是javascript不允许。因为它们已经做了一些事情,所以我们不能在 JSX 中使用它们。在 Flex布局 中,浏览器将忽略所有空格和缩进,就像 JSX 编译器一样。如果我们将其编译成 JavaScript,我们会发现我们使用了两个保留字:for,class。很显然,我们不能将这种条件判断语句这样放在函数的参数中。
2024-12-17 22:28:19
716
原创 使用Animation
注意:animation-direction: alternate与animation-direction: reverse是不同的逻辑!animation-play-state: paused光写在css中没有什么意义,与js结合动态赋予css选择器才有作用。
2024-12-11 09:02:00
232
原创 记录一个transition的使用
如果直接写在h2和p中,那么h2和p的出现和消失都会有延迟,但如果写在.card:hover 后的h2与p中,只有h2和p的出现会有延迟,因为h2和p消失的时候.card已经不是cover了,transition-delay不会生效了。这里为什么将transition-delay卸载.card:hover 后h2与p中,而不是直接写在h2和p中?
2024-12-08 21:48:45
173
原创 React性能优化
无效渲染是指组件函数被调用了,但是并没有导致DOM的任何变化。这通常发生在组件的状态或属性没有改变,但组件仍然被重新渲染的情况下。这种渲染是不必要的,因为它消耗了资源但没有带来任何视觉上的变化。当然这在react中大部分情况下是没问题的,只有这种情况过度频繁时才会产生问题。
2024-12-05 10:52:07
1267
原创 React-Router的使用
这些Route元素指定了一个URL 路径和对应的组件。当用户访问这些路径时,会渲染相应的组件。例如,访问/product时会显示Product组件。
2024-12-02 14:11:58
1412
原创 vite构建的react程序放置图片
在 Vite 中,将图片放置在public文件夹中可以直接使用相对路径(如/logo.png)的原因主要与 Vite 的构建和资源处理方式有关。
2024-11-08 17:26:38
532
原创 React中管理state的方式
action就相当与“你”给柜员的信息——柜员是如何知道要取多少钱的?当然是“你”告诉他的;如果你要去银行取钱的话,你不会直接去银行的金库里面取钱,而是有一个柜员,你 告诉他你需要取多少钱,然后哪个柜员会进行一系列操作,将钱从金库取出来,然后再交给你。reducer的工作方式非常类似JavaScript中的reduce方法,随着时间的退役,reducer会将所有的action累积为一种状态。react中的state就相当于银行金库——其中的钱会被更新;dispacher就相当于取银行要钱的“你”;
2024-10-30 18:03:18
370
原创 React是如何处理事件的?
直觉上,react处理事件的逻辑可能与javascript类似但实际上并不是,react选择将所有事件处理函数都添加到root元素中,也就是说react会为所有的事件处理函数都进行事件委托。注意:上面的说法并不准确 ,但大致意思是这个。
2024-10-21 17:59:01
412
原创 React是如何工作的?
渲染触发:通过更新某处的状态来触发渲染。渲染阶段:React 调用组件函数,确定如何更新 DOM。这是内部计算阶段,不会立即对屏幕产生视觉变化。提交阶段:React 实际写入 DOM,进行元素的更新、插入和删除。浏览器绘制:浏览器将更新后的内容绘制到屏幕上。在 React 中,渲染并不是指更新 DOM 或在屏幕上显示元素。渲染仅在 React 内部发生,不会直接产生视觉变化。它只是一个javascript对象。
2024-10-21 16:54:05
1276
原创 Symbol简单介绍
JavaScript Symbol是一种原始数据类型,用于创建唯一的标识符。它们是 ES6 引入的新类型,用于表示唯一的值,可以用作对象的属性名或方法名。创建 SymbolSymbol 可以使用Symbol()函数创建,且每次调用都会返回一个新的唯一符号。可以传递一个可选的描述字符串作为参数,用于调试目的。
2024-10-19 22:05:11
392
原创 ngnix简单介绍
安装Nginx后,可以通过以下步骤使用Nginx服务:或者3. 配置Nginx配置文件:只要是在 /etc/nginx/nginx.conf该文件下。具体配置方法见下文。4.重新加载Nginx配置:在修改了Nginx配置文件后,需要重新加载配置以使更改生效。或者需要注意的是,在使用Nginx时,可能需要在防火墙中打开相应的端口(例如80端口),以允许外部访问。另外,如果出现问题,可以查看Nginx日志文件/var/log/nginx/error.log以获取更多信息。
2024-09-06 15:27:27
916
原创 注册与登录实现逻辑
注册与登录本身并不难,但是登录后如何维持登录的状态?我如何知道是否已经登录?是否时一个合法的用户?如何实现有些页面只有登录之后的用户才能查看?这就要求有一些东西可以用来记录用户的状态,现在有两种主流的解决方案——基于服务器的Session和基于客户端的JWT。
2024-09-05 14:37:07
949
原创 什么是跨域
为了解决这些问题,Web标准引入了跨域资源共享(CORS)等机制,允许在特定条件下进行跨域交互。CORS是一个W3C标准,允许服务器声明哪些源可以访问其资源,突破了AJAX只能同源使用的限制。同源策略(Same-Origin Policy,SOP)是Web浏览器中的一种关键安全机制,旨在限制不同源之间的交互,以保护用户数据的安全和隐私。比如说:你在浏览器访问hellocode.fun这个网站,这个网站需要去访问abc.com的资源,在资源被返回回来时,就会被浏览器阻止。
2024-09-04 17:31:03
946
原创 定型数组介绍
定型数组(Typed Arrays)是JavaScript中用于处理二进制数据的一种特殊数组。它们是在ES6中引入的,主要用于提高数据处理的效率和性能,特别是在需要处理大量数值数据的情况下,如WebGL中的图形处理。
2024-09-04 10:36:33
352
原创 浏览器接收数据并处理
注意: 我们这里的接收数据并处理指的是,js通过ajax或者fetch方法,向服务器发送请求去获取数据,而不是js通过修改DOM的src="xxxxxx", 让元素发起请求,这是完全两回事。
2024-09-01 23:23:20
446
原创 伪元素选择器
伪元素选择器是能在页面中产生虚拟的元素,或者是说把页面当中的某些元素中特定的内容,变为虚拟的元素。注意:伪类选择器是一种条件、一种状态,我们可以通过它再配合一些其他的选择器,去选中页面当中已经有的一些元素。
2024-08-15 14:15:12
235
原创 js模块化
默认导出 export 后要加 default,每个文件只能默认导出一次。全部一起导入成一个模块对象,不管是命名导出的还是默认导出的都在这个对象里,,ESM 就是 ES Module的简称 就是ES标准的模块化方式。传统的库用立即执行函数产生闭包的方式解决这个问题,如jQuery。默认导出不需要命名,可以在导入时指定任意名称。命名导出,导出的一定要有名称 name属性。分为 默认导出 和命名导出(一般导出)。也分为默认导入和命名导入(一般导入)。可以通过花括号的形式一起导出。默认导入只会导入默认导出的,
2024-08-12 15:27:53
375
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人