自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4122)
  • 资源 (258)
  • 收藏
  • 关注

原创 【FFmpeg】Filter 过滤器 ⑤ ( 画中画 - overlay 过滤器 | overlay 过滤器可选参数设置 | 内置参数 | 基础用法 | 控制画中画尺寸及播放效果 | 跑马灯效果 )

一、画中画 - overlay 过滤器1、overlay 过滤器语法2、overlay 过滤器可选参数设置3、overlay 过滤器内置参数二、画中画命令示例解析1、画中画命令默认设置 - 基础用法2、画中画命令 - 设置 eof_action 参数3、画中画命令 - 设置 shortest 参数4、画中画命令 - 设置 scale 参数控制画中画尺寸5、画中画命令 - 设置跑马灯效果

2024-05-17 04:15:00 2597 12

原创 【每日随笔】思维模型 ② ( 能量模型 | 能量交互 | 能量模型使用法则 | 能量循环 | 能量的使用原则 | 远离 “ 能量吸血鬼 “ | 避开因果 )

一、能量模型1、能量概念2、能量模型组成3、能量交互二、能量模型使用法则1、能量循环 ( 重点 )2、能量的使用原则3、远离 " 能量吸血鬼 "4、避开因果

2024-05-16 20:04:18 943 1

原创 【每日随笔】思维模型 ① ( 扩展大脑 - 装载思维模型 | 大脑局限性 - 只能思考一个点 | 思维模型装载与使用 | 聪明人与蠢人的区别 | 大脑内决策案例 - 要不要买黄金 )

一、扩展大脑 - 装载思维模型1、大脑局限性 - 只能思考一个点2、思维模型装载与使用3、聪明人与蠢人的区别二、大脑内决策案例 - 要不要买黄金1、" 盛世古董 , 乱世黄金 " 模型2、舆论宣传模型3、操纵价格真相 - 未知4、黄金的价格和保有量5、社会真相6、得出结果 - 不买黄金

2024-05-15 22:54:26 935 2

原创 【每日随笔】情绪操控术 ④ ( 考试前要将题目拆解到化境 - 每种题型的解题思路都要精通 / 可保持理性 | 遇到不会的题目 - 激活情绪脑 | 模型思维 | 学霸与学渣的区别 | 牛人与普通人 )

一、考试场景 - 情绪脑1、考试前要将题目拆解到化境 - 每种题型的解题思路都要精通 ( 可保持理性 )2、遇到不会的题目 - 激活情绪脑二、模型思维1、大脑算力 与 思维模型2、学霸与学渣的区别3、牛人与普通人的区别

2024-05-15 21:15:39 508

原创 【FFmpeg】Filter 过滤器 ④ ( 图片水印 - movie 过滤器 / overlay 过滤器 | movie 过滤器内置参数值简介 | 图片水印示例 )

一、图片水印 - movie 过滤器 / overlay 过滤器1、movie 过滤器简介2、movie 过滤器内置参数值简介3、overlay 过滤器简介二、图片水印示例1、添加图片水印 - 基础设置2、添加图片水印 - 将水印设置到视频右下角3、添加图片水印 - 水印跑马灯不停移动

2024-05-14 13:38:46 5365 25

原创 【FFmpeg】Filter 过滤器 ③ ( 文字水印 - drawtext 过滤器 | drawtext 过滤器支持库编译配置 | drawtext 过滤器常用参数 )

一、文字水印 - drawtext 过滤器1、drawtext 过滤器简介2、drawtext 过滤器支持库3、编译 FFmpeg 源码时启用 drawtext 过滤器配置二、drawtext 过滤器常用参数1、设置文字参数 - text / textfile2、设置背景盒子参数 - box / borderw / boxcolor3、设置颜色值 - RGB / 十六进制 / 英文名称4、设置字体参数 - font / fontsize / fontcolor4、设置水印位置参数 - x

2024-05-13 19:59:15 1809 13

原创 【每日随笔】情绪操控术 ③ ( “ 情绪脑 “ 危险的识别机制 | 避免 “ 危险识别机制 “ 误判 | 做局儿原理 - 激活情绪脑 )

一、" 情绪脑 " 危险的识别机制1、情绪脑对危险的识别机制2、避免 " 危险识别机制 " 误判3、高考场景 - 紧张发挥时长4、压力过大 - 超过人承受阈值 - 自杀二、做局儿原理 - 激活情绪脑1、情绪脑激活前提2、做局儿原理 - 激活情绪脑

2024-05-13 19:51:32 814 1

原创 【FFmpeg】Filter 过滤器 ② ( 裁剪过滤器 Crop Filter | 裁剪过滤器语法 | 裁剪过滤器内置变量 | 裁剪过滤器常用用法 )

一、裁剪过滤器1、裁剪过滤器简介2、裁剪过滤器语法3、裁剪过滤器内置变量4、裁剪过滤器示例5、裁剪过滤器应用6、裁剪过滤器图示二、裁剪过滤器常用用法1、裁剪指定像素的视频区域2、裁剪视频区域中心正方形 - 默认裁剪3、裁剪视频区域中心正方形 - 手动计算4、裁剪中心 1/2 宽高画面5、裁剪中心区域正方形 - 边长等于高度6、裁剪掉左上角 100 像素7、裁剪出右下角 1/4 面积的画面

2024-05-12 18:55:00 1552 18

原创 【每日随笔】人性 - 能屈能伸 ( 君子之道 能屈能伸 )

一、君子之道 能屈能伸1、含义分析2、能屈3、能伸4、最佳实践二、能屈能伸 - 应用场景1、个人层面2、国家层面

2024-05-12 14:25:32 967 2

原创 【JavaScript】内置对象 - 数组对象 ⑤ ( 数组转字符串 | toString 方法 | join 方法 )

一、数组转字符串1、数组转字符串 ( 逗号分割 ) - toString()2、数组转字符串 ( 自定义分割符 ) - join()

2024-05-11 10:01:12 1011 1

原创 【JavaScript】内置对象 - 数组对象 ④ ( 索引方法 | 查找给定元素的第一个索引 | 查找给定元素的最后一个索引 | 索引方法案例 - 数组元素去重 )

一、索引方法1、查找给定元素的第一个索引 - indexOf()2、查找给定元素的最后一个索引 - lastIndexOf()二、索引方法案例 - 数组元素去重1、需求分析2、代码实现

2024-05-11 04:45:00 1699

原创 【JavaScript】内置对象 - 数组对象 ③ ( 数组反转 - reverse 方法 | 数组排序 - sort 方法 | 自定义数组排序规则 )

一、数组排序1、翻转数组元素 - reverse()2、数组元素排序 - sort() 默认从小到大排序3、数组元素排序 - sort() 自定义排序规则4、数组元素排序 - sort() 自定义降序排序简化写法

2024-05-11 01:45:00 1174 1

原创 【JavaScript】内置对象 - 数组对象 ② ( 数组添加元素 - push 方法 / unshift 方法 | 数组删除元素 - pop 方法 / shift 方法 )

一、添加数组元素1、添加数组元素 - push()2、添加数组元素 - unshift()二、删除数组元素1、删除数组元素 - pop()2、删除数组元素 - shift()三、数组筛选1、数组筛选回顾2、代码示例

2024-05-10 21:15:00 557 2

原创 【JavaScript】内置对象 - 数组对象 ① ( 数组简介 | 数组创建 | 数组类型检测 )

一、数组对象1、数组简介2、数组创建3、数组检测 - Array.isArray() 方法4、数组检测 - instanceof 运算符

2024-05-10 20:15:00 1357 2

原创 【FFmpeg】Filter 过滤器 ① ( FFmpeg 过滤器简介 | 过滤器概念 | 过滤器用法 | 过滤器工作流程 | 过滤器文档 | 过滤器分类 )

一、FFmpeg 过滤器 Filter 简介1、FFmpeg 过滤器概念2、FFmpeg 过滤器用法3、FFmpeg 过滤器工作流程4、FFmpeg 过滤器文档二、FFmpeg 过滤器 分类1、过滤器分类 - 根据处理数据类型分类2、过滤器分类 - 根据编码器位置分类3、过滤器分类 - 根据功能分类

2024-05-08 20:03:33 5026 22

原创 【JavaScript】内置对象 - Date 日期对象 ④ ( 制作倒计时页面 )

一、倒计时页面实现1、需求分析2、计算秒数3、计算倒计时时间的 天 / 时 / 分 / 秒4、页面中显示倒计时时间二、完整代码示例1、完整代码2、执行结果

2024-05-08 17:14:35 1109 3

原创 【JavaScript】内置对象 - Date 日期对象 ③ ( 获取日期对应时间戳 | getTime 方法 | valueOf 方法 | +new Date() 方法 | Date.now方法 )

一、获取日期对应的毫秒时间戳1、时间戳简介2、调用 Date 对象的 getTime 函数获取时间戳3、调用 Date 对象的 valueOf 函数获取时间戳4、使用 + 运算符获取 Date 对象的时间戳 ( 最常用 )5、调用 Date 对象的 now 方法获取现在时间戳 ( H5 新增 - 不兼容低版本 )

2024-05-07 07:56:45 1456 4

原创 【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )

一、推流和拉流简介1、直播推流和拉流操作2、直播推流和拉流涉及到的软件3、推流 -> 拉流 流程二、流媒体服务器搭建1、相关文件准备2、创建 ECS 云服务器实例3、配置安全组4、使用 WinSCP 上传流媒体服务器软件及配置脚本5、使用 SecureCRT 连接服务器6、搭建流媒体服务器三、使用 ffmpeg 命令进行推流操作四、使用 ffplay 命令进行拉流操作五、使用 ffmpeg 命令进行拉流操作

2024-05-05 14:54:55 13167 24

原创 【JavaScript】内置对象 - Date 日期对象 ② ( 日期格式化 | 获取年 - getFullYear | 获取月 - getMonth | 获取每月的第几天 - getDate )

一、日期格式化1、获取年 - getFullYear2、获取月 - getMonth3、获取每月的第几天 - getDate4、获取每周的第几天 - getDay5、获取每天的第几小时 - getHours6、完整代码示例

2024-04-28 23:15:00 1202 9

原创 【FFmpeg】音视频录制 ④ ( 查询录制参数 )

一、查询录制参数1、录制屏幕视频 + 系统音频命令回顾2、录制视频参数查询3、录制音频参数查询

2024-04-28 22:15:00 398

原创 【FFmpeg】音视频录制 ③ ( 使用 ffmpeg 录制 Screen Capturer Recorder 软件生成的虚拟音视频设备 | 录制桌面 | 录制音频 | 同时录制 音频和视频数据 )

一、Screen Capturer Recorder 生成的虚拟音视频设备1、Screen Capturer Recorder 生成的虚拟音视频设备2、查看上述虚拟音视频设备二、使用 ffmpeg 录制 Screen Capturer Recorder 软件生成的虚拟音视频设备1、录制桌面2、录制音频3、录制多路音频 - 配置 filter_complex 混音参数4、同时录制 系统音频 + 桌面视频5、同时录制 系统音频 + 麦克风音频 + 桌面视频

2024-04-27 02:15:00 6699 23

原创 【JavaScript】内置对象 - Date 日期对象 ① ( Date 对象简介 | 使用构造函数创建 Date 对象 | 构造函数参数为时间戳 | 构造函数参数为空 | 构造函数参数为字符串 )

一、Date 日期内置对象1、Date 对象简介2、创建 Date 对象二、使用构造函数创建 Date 对象1、构造函数参数为空2、构造函数参数为时间戳3、构造函数参数为字符串4、构造函数参数为多个数字值5、完整代码示例

2024-04-26 21:45:00 1250 9

原创 【JavaScript】内置对象 ④ ( Math 内置对象常用方法 | 取绝对值 | 向下取整 | 向上取整 | 四舍五入取整 | 取随机数 )

一、Math 内置对象常用方法1、计算绝对值 - Math.abs2、取整计算 - Math.floor 向下取整 / Math.ceil 向上取整 / Math.round 四舍五入3、随机数 - Math.random4、代码示例 - 猜随机数

2024-04-26 19:15:00 2032 1

原创 【JavaScript】内置对象 ③ ( Math 内置对象 | Math 内置对象简介 | Math 内置对象的使用 )

一、Math 内置对象1、Math 内置对象简介2、Math 内置对象的使用二、代码示例1、代码示例 - Math 内置对象的使用2、代码示例 - 封装 Math 内置对象

2024-04-25 22:13:37 1155 4

原创 【JavaScript】内置对象 ② ( JavaScript 技术文档查询 | MDN 文档简介 | MDN 文档查询方法 | 查询对象描述 | 查询对象属性 | 查询对象方法 )

一、JavaScript 技术文档查询1、MDN 文档简介2、MDN 文档查询方法3、查询对象描述4、查询对象属性5、查询对象方法

2024-04-25 19:45:00 949 5

原创 【FFmpeg】音视频录制 ② ( 使用 Screen Capturer Recorder 软件生成 ffmpeg 可录制的音视频设备 )

一、使用 Screen Capturer Recorder 软件生成音视频设备1、设备查找问题 - 引入 Screen Capturer Recorder 软件2、下载安装 Screen Capturer Recorder 软件3、验证 Screen Capturer Recorder 生成的设备

2024-04-24 23:15:00 2145 3

原创 【FFmpeg】音视频录制 ① ( 查询系统中 ffmpeg 可录制的音视频输入设备 | 使用 ffmpeg 命令录制音视频数据 | 录制视频数据命令 |录制音频数据| 同时录制音频和视频数据命令 )

一、查询系统中 ffmpeg 可录制的音视频输入设备二、使用 ffmpeg 命令录制音视频数据1、录制视频数据命令2、录制音频数据命令3、同时录制音频和视频数据命令

2024-04-24 02:15:00 5677 14

原创 【JavaScript】内置对象 ① ( 内置对象简介 | JavaScript 中的三类对象 - 自定义对象 / 内置对象 / 浏览器对象 | 常用的内置对象 )

一、JavaScript 内置对象简介1、JavaScript 中的三类对象 - 自定义对象 / 内置对象 / 浏览器对象2、JavaScript 中常用的内置对象3、代码示例 - Math 内置对象使用示例

2024-04-23 23:15:00 1447 7

原创 【JavaScript】对象 ⑤ ( 遍历对象 | for…in 循环 遍历对象 | Object.keys() 遍历对象 的 属性名称 | Object.entries() 遍历对象属性键值对 )

一、遍历对象引入1、对象遍历需求2、遍历对象的常用方法二、遍历对象1、使用 for…in 循环 遍历对象2、使用 Object.keys() 遍历对象 的 属性名称3、使用 Object.values() 遍历对象 的 属性值4、使用 Object.entries() 遍历对象 的 属性名称 + 属性值 键值对组合

2024-04-23 19:45:00 3703

原创 【JavaScript】对象 ④ ( 构造函数与对象的联系 | new 操作符执行过程分析 )

一、构造函数与对象的联系二、new 操作符执行过程分析1、使用 new 构造函数() 创建对象过程2、new 操作符执行过程

2024-04-22 23:03:39 842 6

原创 【错误记录】adb 调试 android 设备报错 ( adb server version (19045) doesn‘t match this client (41); killing... )

adb server version (19045) doesn't match this client (41); killing...could not read ok from ADB Server* failed to start daemonadb.exe: failed to check server version: cannot connect to daemon

2024-04-22 20:15:00 2730 4

原创 【FFmpeg】视频与图片互相转换 ( 视频与 JPG 静态图片互相转换 | 视频与 GIF 动态图片互相转换 )

一、视频与 JPG 静态图片互相转换1、视频转静态图片2、视频转多张静态图片3、多张静态图片转视频二、视频与 GIF 动态图片互相转换1、视频转成 GIF 动态图片2、 GIF 动态图片转成视频

2024-04-21 20:27:30 6129 13

原创 【Android 腾讯地图】腾讯地图开发记录 ① ( 地图基础显示 | 创建应用和申请key | 配置远程依赖库 | 配置腾讯地图 Key | 同意隐私协议 | 布局设置 | 覆盖自定义地图图片 )

一、创建应用和申请key1、创建应用2、申请 key二、配置应用1、配置远程依赖库基础配置完整配置2、配置腾讯地图 Key三、地图开发1、同意隐私协议2、布局文件3、地图显示 Activity 类设置4、覆盖自定义地图图片

2024-04-20 23:15:00 3160 4

原创 【FFmpeg】视频裁剪与拼接命令 ( 裁剪视频命令 | h264 编码的 SPS 和 PPS 数据 | 拼接视频 - 相同编码和相同容器格式的拼接 | 拼接视频 - 不同编码和容器格式的拼接测试 )

一、裁剪视频1、裁剪视频命令2、h264 编码的 SPS 和 PPS 数据3、将裁剪的视频转为 ts 格式4、将裁剪的视频转为 flv 格式二、拼接视频 - 相同编码和相同容器格式的拼接测试1、拼接视频命令 - mp4 格式直接使用命令拼接 mp4 视频 - 拼接失败指定文件列表拼接 mp4 视频 - 拼接成功但是播放不正常2、拼接视频命令 - ts 格式直接使用命令拼接 ts 视频 - 拼接成功指定文件列表拼接 ts 视频 - 拼接成功3、拼接视频命令 - flv 格式

2024-04-17 21:00:20 2588 3

原创 【副业随笔】副业起步认知 ① ( 副业 -> 创业的成长阶段 | 副业项目认知 | 赚钱项目知识付费的本质 | 可拆解项目 - 招人扩大规模 | 不可拆解项目 - 闷声发大财 )

一、副业 -> 创业的成长阶段二、副业项目认知1、赚钱项目知识付费的本质2、可拆解项目 - 招人扩大规模3、不可拆解项目 - 闷声发大财

2024-04-16 19:45:00 1390 11

原创 【错误记录】Kotlin 中 Lambda 表达式返回值报错 ( ‘return‘ is not allowed here | 匿名内部类 | 尾随 Lambda 规范 - Lambda 替换接口 )

一、错误记录二、问题分析1、匿名内部类2、尾随 Lambda 规范 - Lambda 替换接口3、Lambda 表达式中 return 需要 @ 标签三、解决方案

2024-04-15 16:28:38 1551 12

原创 【JavaScript】对象 ③ ( 使用 new Object 创建对象 | 使用 构造函数 创建对象 | 构造函数语法 | 使用 字面量 和 new Object 创建对象的方法弊端 )

一、使用 new Object 创建对象1、使用 new Object 创建对象语法2、代码示例 - 使用 new Object 创建对象二、使用 构造函数 创建对象1、字面量 和 new Object 创建对象的方法弊端2、构造函数引入3、构造函数语法4、代码示例 - 构造函数语法

2024-04-15 12:21:04 1933 1

原创 【错误记录】Android 使用 Navigation 报错 ( Trying to instantiate a class xx.NavHostFragment that is not a Fr )

Caused by: android.app.Fragment$InstantiationException: Trying to instantiate a class androidx.navigation.fragment.NavHostFragment that is not a Fragment

2024-04-14 15:26:50 694 10

原创 【错误记录】Android 编译报错 ( Attempt to invoke virtual method ‘void xx.ActionBar.setTitle()‘ on a null obj )

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void androidx.appcompat.app.ActionBar.setTitle(java.lang.CharSequence)' on a null object reference一、报错信息二、问题分析三、解决方案1、配置有标题的主题 - Theme.AppCompat.Light.DarkActionBar2、不关联

2024-04-14 13:39:08 1230 2

原创 【错误记录】Android Studio 调试 华为手机 不显示 Logcat 日志 ( Fail to acquire dataAnalyzerService | HarmonyOS 鸿蒙系统 )

E/BehaviorCollectManager: Fail to acquire dataAnalyzerService...E/Adreno-AppProfiles: Could not find QSPM HAL serviceE/OpenGLRenderer: Unable to match the desired swap behavior.

2024-04-14 10:18:27 4122 3

FFmpegSDL 音视频开发 ⑦ ( 播放 PCM 音频数据 )

【FFmpeg】SDL 音视频开发 ⑦ ( 播放 PCM 音频数据 | 提取 PCM 格式数据 | 设置音频参数 | 打开音频设备 | 设置播放回调函数 | 播放音频数据 | 关闭音频设备 ) 博客地址 : https://hanshuliang.blog.csdn.net/article/details/141950997 一、PCM 格式简介 1、PCM 简介 2、PCM 参数 3、声音频率 ( 注意与采样率区分 ) 4、使用 ffmpeg 获取 PCM 格式数据 5、使用 ffplay 播放 PCM 格式数据 二、SDL 播放 PCM 流程 1、初始化 SDL 2、设置音频参数 3、打开音频设备 4、设置播放回调函数 5、播放音频数据 6、关闭音频设备 7、SDL 播放 PCM 音频数据的 关键步骤 代码示例 三、完整代码示例 1、完整代码示例 2、执行结果

2024-09-10

FFmpegSDL 音视频开发 ⑥ ( SDL 播放 YUV 视频 )

【FFmpeg】SDL 音视频开发 ⑥ ( SDL 播放 YUV 视频 | YUV 4:2:0 采样 | YUV420P 格式介绍 | 获取 YUV 视频文件 | 读取并加载 YUV 画面数据 ) 博客地址:https://blog.csdn.net/shulianghan/article/details/141900912 一、SDL 播放 YUV 视频 1、YUV 4:2:0 采样 2、YUV420P 格式介绍 3、获取 YUV 视频文件 4、读取 YUV 画面数据 5、加载 YUV 视频数据 二、完整代码示例 1、代码示例 2、执行效果

2024-09-05

【AI 大模型】函数调用 Function Calling ② ( 函数调用 引入 - 函数调用开发流程 - 代码示例 )

【AI 大模型】函数调用 Function Calling ② ( Plugins、Actions 扩展 | 函数调用 Function Calling 引入 | 函数调用开发流程 | 代码示例 ) https://hanshuliang.blog.csdn.net/article/details/140380268 博客代码示例 一、Plugins、Actions 扩展 1、GPT 大模型缺陷 - 引入 Plugins、Actions 扩展 2、Plugins 插件 3、Plugins 插件开发流程 4、Plugins 插件弊端 - Actions 引入 5、Actions 简介 二、ChatGPT 的平替 - Coze、Dify 三、函数调用 Function Calling 引入 四、函数调用开发流程 1、调用 OpenAI 的接口 2、函数定义 3、大模型回调 4、本地代码逻辑 5、第二次大模型调用 五、函数调用代码示例

2024-07-20

【AI 大模型】OpenAI 接口调用 ① ( PyCharm 中开发 Python 程序调用 OpenAI 接口 )

【AI 大模型】OpenAI 接口调用 ① ( 安装 openai 软件包 | 查看 openai 软件包版本 | PyCharm 中开发 Python 程序调用 OpenAI 接口 ) https://hanshuliang.blog.csdn.net/article/details/139922167 博客源码快照 一、安装 Python SDK 二、安装 OpenAI Python SDK 1、安装 openai 软件包 2、查看 openai 软件包版本 3、openai 接口参考文档 三、PyCharm 中开发 Python 程序调用 OpenAI 接口 1、PyCharm 创建 Python 项目 2、购买 API Key 3、API Key 配置用法 4、中转 API 与 直联 API 使用注意事项 5、Python 代码示例

2024-06-24

FFmpegSDL 音视频开发 ④ ( SDL 多线程 / 创建线程 / 等待线程执行完毕 )

【FFmpeg】SDL 音视频开发 ④ ( SDL 多线程 | SDL_Thread 结构体 | SDL_CreateThread 函数创建线程 | SDL_WaitThread 函数等待线程执行 ) https://hanshuliang.blog.csdn.net/article/details/139760886 博客源码快照 一、SDL 多线程简介 1、SDL 多线程引入 2、SDL_Thread 多线程模型 二、SDL 多线程相关函数 1、SDL 创建线程 - SDL_CreateThread 函数 2、SDL 等待线程执行完毕 - SDL_WaitThread 函数 三、SDL 线程代码示例 - 创建并等待线程执行完毕 1、代码示例 2、执行结果

2024-06-18

FFmpegSDL 音视频开发 ③ ( SDL 事件处理 )

【FFmpeg】SDL 音视频开发 ③ ( SDL 事件处理 | SDL_Event 数据结构分析 | 事件处理流程 | SDL 事件获取函数 | SDL_WaitEvent 函数 ) https://hanshuliang.blog.csdn.net/article/details/139669401 博客源码快照 一、SDL 事件处理简介 1、SDL 事件处理引入 2、SDL 事件处理步骤 二、SDL 事件数据结构分析 1、SDL_Event 事件 - union 联合体 2、SDL_Event 事件处理流程 三、SDL 事件函数 1、SDL_PollEvent 函数 2、SDL_WaitEvent 函数 四、完整代码示例 1、代码示例 2、执行结果

2024-06-14

算法Graham 凸包扫描算法 ( 凸包概念 - 常用的凸包算法 - 角排序 - 叉积 - Python 代码示例 )

【算法】Graham 凸包扫描算法 ( 凸包概念 | 常用的凸包算法 | 角排序 | 叉积 | Python 代码示例 ) https://hanshuliang.blog.csdn.net/article/details/139651095 博客源码快照 一、Graham 凸包扫描算法 1、凸包概念 2、常用的凸包算法 3、Graham 凸包扫描算法 二、Graham 算法前置知识点 1、角排序 2、叉积 3、算法过程分析 三、代码示例 1、完整代码示例 2、执行结果

2024-06-13

FFmpegSDL 音视频开发 ②

【FFmpeg】SDL 音视频开发 ② https://hanshuliang.blog.csdn.net/article/details/139592113 博客源码快照

2024-06-11

FFmpegSDL 音视频开发 ① ( SDL 窗口绘制 )

【FFmpeg】SDL 音视频开发 ① ( SDL 窗口绘制 | SDL 视频显示函数 | SDL_Window 窗口 | SDL_Renderer 渲染器 | SDL_Texture 纹理 ) https://hanshuliang.blog.csdn.net/article/details/139528565 博客源码快照 一、SDL 视频显示函数 1、SDL_Init 函数 2、SDL_Quit 函数 3、SDL_CreateWindow 函数 4、SDL_CreateRenderer 函数 5、SDL_CreateTexture 函数 6、窗口 / 渲染器 / 纹理 关联 二、SDL 窗口绘制 - 代码示例 1、SDL 窗口绘制代码 2、执行结果

2024-06-07

FFmpegSDL 开发环境搭建

【FFmpeg】SDL 开发环境搭建 ( SDL 简介 | 下载 SDL 开发库 | 拷贝动态库到 C:\Windows\SysWOW64 目录 | 将 SDL 开发库配置到 Qt 项目 ) https://hanshuliang.blog.csdn.net/article/details/139516815 博客源码快照 一、SDL 简介 1、SDL 简介 2、SDL 相关网站 二、SDL 开发环境搭建 1、下载 SDL 开发库 2、SDL 开发库内容解析 3、拷贝动态库到 C:\Windows\SysWOW64 目录 4、创建 Qt 项目 5、将 SDL 开发库配置到 Qt 项目 6、SDL 窗口示例

2024-06-07

【OpenHarmony】ArkTS 语法基础 ⑥ ( ArkTS 状态管理 - @Link 装饰器 )

【OpenHarmony】ArkTS 语法基础 ⑥ ( ArkTS 状态管理 | @Link 装饰器 | 子组件定义使用 @Link 变量 | 父容器中定义 @State 变量并绑定子组件变量 ) https://hanshuliang.blog.csdn.net/article/details/139466799 博客源码快照 一、ArkTS 状态管理 - @Link 装饰器 1、@Link 装饰器 2、子组件定义 @Link 变量 3、子组件中使用 @Link 变量 4、父容器中定义 @State 变量 6、父容器中绑定 @State 变量和 @Link 变量 二、完整代码示例 1、自定义组件代码 2、父容器组件代码 3、执行结果

2024-06-05

【OpenHarmony】ArkTS 语法基础 ⑤ ( ArkTS 状态管理 / @State 装饰器定义状态数据 )

【OpenHarmony】ArkTS 语法基础 ⑤ ( ArkTS 状态管理 | @State 装饰器定义状态数据 | 使用状态数据渲染组件 ) https://hanshuliang.blog.csdn.net/article/details/139452711 博客源码快照 一、ArkTS 状态管理 - @State 装饰器 1、@State 装饰器定义状态数据 2、@State 装饰器定义状态数据 - 示例分析 3、使用 @State 装饰器定义的状态数据渲染组件 - 示例分析 二、完整代码示例 1、完整自定义组件代码示例 2、展示效果

2024-06-05

【OpenHarmony】ArkTS 语法基础 ④ ( ArkTS UI 渲染控制 - 条件渲染 - 循环渲染 )

【OpenHarmony】ArkTS 语法基础 ④ ( ArkTS UI 渲染控制 | if else 条件渲染 | ForEach 循环渲染 ) https://hanshuliang.blog.csdn.net/article/details/139441781 博客源码快照 一、ArkTS UI 渲染控制 1、if else 条件渲染 2、ForEach 循环渲染 二、完整代码示例 1、自定义组件代码 2、主界面代码 3、执行结果

2024-06-04

【OpenHarmony】ArkTS 语法基础 ③ ( 自定义组件生命周期回调函数 - 页面生命周期回调函数 )

【OpenHarmony】ArkTS 语法基础 ③ ( @Component 自定义组件生命周期回调函数 | @Entry 页面生命周期回调函数 ) https://hanshuliang.blog.csdn.net/article/details/139424435 博客源码快照 一、ArkTS @Component 自定义组件生命周期 1、自定义组件生命周期 2、aboutToAppear 函数执行时机和作用 3、aboutToDisappear 函数执行时机和作用 4、代码示例 二、ArkTS @Entry 页面生命周期 1、@Entry 页面生命周期 2、onBackPress 和 onPageHide 回调函数无关联 三、代码示例 - @Entry 页面生命周期 + @Component 自定义组件生命周期 1、代码示例 - @Component 自定义组件生命周期 2、代码示例 - @Entry 页面生命周期 3、进入页面后的效果 4、屏幕熄灭 4、屏幕点亮 5、按下 Home 键 6、Home 键返回 7、回退键退出应用

2024-06-04

【OpenHarmony】 ArkTS 语法基础 ② ( ArkTS 自定义组件 )

【OpenHarmony】ArkTS 语法基础 ② ( ArkTS 自定义组件 | 自定义可导入组件 - export 声明模块 | 导入自定义组件 - import 导入组件 ) https://hanshuliang.blog.csdn.net/article/details/139407374 博客源码快照 一、ArkTS 自定义组件 1、@Component 装饰器 2、自定义组件语法 3、将自定义组件设置为页面入口 二、ArkTS 使用外部自定义组件 1、自定义可导入组件 - export 声明模块 2、导入自定义组件 - import 导入组件

2024-06-03

Windows 10 平台 FFmpeg 开发环境搭建 博客资源

【FFmpeg】Windows 10 平台 FFmpeg 开发环境搭建 ④ ( FFmpeg 开发库内容说明 | 创建并配置 FFmpeg 项目 | 拷贝 DLL 动态库到 SysWOW64 目录 ) https://hanshuliang.blog.csdn.net/article/details/139172564 博客资源 一、FFmpeg 开发库 1、FFmpeg 开发库编译 2、FFmpeg 开发库内容说明 二、创建并配置 FFmpeg 项目 1、拷贝 dll 动态库到 C:\Windows\SysWOW64 目录 - 必须操作 特别关注 2、创建 Qt 项目 - C 语言程序 3、配置 FFmpeg 开发库 - C 语言项目 4、创建并配置 FFmpeg 开发库 - C++ 项目

2024-05-24

FFmpegFilter 过滤器 ⑥ ( 九宫格画面拼接 ) 博客资源

【FFmpeg】Filter 过滤器 ⑥ ( 九宫格画面拼接 ) 博客资源 博客地址 : https://hanshuliang.blog.csdn.net/article/details/139008847

2024-05-17

【移动端网页布局】Flex 弹性布局案例 ③

【移动端网页布局】Flex 弹性布局案例 ③

2024-03-06

GIF录屏工具-Gif123-GifCam-LICEcap

GIF录屏工具-Gif123-GifCam-LICEcap

2024-03-04

Java 语言中的 properties 配置文件使用

【Java 语言】读取 properties 配置文件 ( Java 语言中的 properties 配置文件 | 使用 properties 配置文件 ) https://hanshuliang.blog.csdn.net/article/details/134435350 博客源码

2023-11-16

JetpackNavigation 导航组件 ④ ( Fragment 跳转中使用 safe args 安全传递参数 )

https://hanshuliang.blog.csdn.net/article/details/131406972 博客源码快照 一、页面跳转间的传统的数据传递方式 1、传统的数据传递方式 - Bundle 传递数据 1、Navigation 组件中的 Bundle 数据传递 2、传统数据传递实现步骤 3、FragmentA 完整代码示例 4、FragmentB 完整代码示例 5、执行结果 2、使用 Bundle 传递数据安全性差 二、页面跳转间的传统的数据传递方式 1、导入插件依赖 2、使用插件 3、在 navigation_graph.xml 中定义要传递的 argument 参数信息 4、重新编译生成参数传递相关代码 5、调用 FragmentBArgs 类生成参数 Bundle 6、FragmentA 中获取参数 三、两种传参方式的完整代码示例 1、Gradle 构建脚本 I、根目录下 settings.gradle 构建脚本 II、根目录下 build.gradle 构建脚本 III、Module 目录下 build.gradle 构建脚本 2、res 资源配置

2023-08-25

可运行的 Android 版本的 ijkplayer 2023年 8 月 14 日调试完毕

运行环境 : 2021.3.1 Dolphin , Android Gradle 插件版本号 3.2.0 , Gradle 版本号 gradle-4.6-all.zip 【ijkplayer】编译 Android 版本的 ijkplayer ⑦ ( 使用 AS 打开源码 | 重新设置 AGP 和 Gradle 版本号 | 设置依赖仓库 | 设置依赖 | 编译运行 ) 原文链接:https://blog.csdn.net/shulianghan/article/details/132274142 一、Android Studio 打开编译后的 ijkplayer 源码 二、重新设置 Android Gradle 插件版本号和 Gradle 构建工具版本号 三、设置依赖仓库 1、取消 jcenter 仓库 2、添加 google 和 mavenCentral 仓库 3、添加阿里云仓库 四、取消 jcenter 上传相关插件 五、设置编译工具版本号 六、取消 productFlavors 七、设置 build.gradle 中的依赖为 implementation 依赖 八、编译应用

2023-08-14

hadoop-3.3.4.tar.gz + winutils 安装环境

【开发环境】安装 Hadoop 运行环境 ( 下载 Hadoop | 解压 Hadoop | 设置 Hadoop 环境变量 | 配置 Hadoop 环境脚本 | 安装 winutils ) https://hanshuliang.blog.csdn.net/article/details/132045605 一、下载 Hadoop 二、解压 Hadoop 三、设置 Hadoop 环境变量 四、配置 Hadoop 环境脚本 五、安装 winutils 六、重启电脑 七、验证 Hadoop 安装效果

2023-08-03

JetpackNavigation 导航组件 ③ ( 为 Navigation Graph 添加跳转动画 )

【Jetpack】Navigation 导航组件 ③ ( 为 Navigation Graph 添加跳转动画 ) 博客源码快照 博客地址 : https://hanshuliang.blog.csdn.net/article/details/131405392 一、为 Navigation Graph 添加跳转动画 1、进入 Navigation Graph 配置的 Design 模式 2、选中 action 跳转 3、为 action 跳转设置 enterAnim 进入动画 4、为 action 跳转设置 exitAnim 退出动画 5、通过代码为 action 跳转设置进入 / 退出动画

2023-06-26

JetpackNavigation 导航组件 ②

【Jetpack】Navigation 导航组件 ② ( Navigation 核心要点说明 | 创建 Navigation Graph | 创建 NavHostFragment | 完整代码示例 ) https://hanshuliang.blog.csdn.net/article/details/131299078

2023-06-21

DB Browser for SQLite 数据库查看工具

DB Browser for SQLite 数据库查看工具

2023-06-14

ViewModel + LiveData + DataBinding 综合使用示例

【Jetpack】ViewModel + LiveData + DataBinding 综合使用 ( 核心要点说明 | 组合方式 | 代码示例 ) 博客地址 : https://hanshuliang.blog.csdn.net/article/details/130401679 一、ViewModel + LiveData + DataBinding 核心要点 1、ViewModel 使用要点 2、LiveData 使用要点 3、DataBinding 使用要点 二、ViewModel + LiveData + DataBinding 代码示例 1、ViewModel + LiveData 代码 2、build.gradle 构建脚本 - 启用 DataBinding 3、DataBinding 布局文件 - 配置 ViewModel 类 4、Activity 系统组件代码 - 加载 DataBinding 布局 / 布局配置 ViewModel 对象 / 设置 LiveData 观察者 5、执行结果

2023-04-27

BaseObservable 实现数据模型 Model 与视图 View 双向绑定

BaseObservable 实现数据模型 Model 与视图 View 双向绑定

2023-04-18

DataBinding 架构组件 ④

【Jetpack】DataBinding 架构组件 ④ ( 使用 @BindingAdapter 注解为布局组件绑定自定义逻辑 | 网络图片加载 | 本地图片加载 ) https://blog.csdn.net/shulianghan/article/details/130043460 一、@BindingAdapter 注解 1、注解简介 2、使用 @BindingAdapter 注解为布局组件绑定自定义逻辑 二、使用 @BindingAdapter 注解绑定加载网络图片静态方法 三、使用 @BindingAdapter 注解绑定加载本地图片静态方法 四、使用 @BindingAdapter 注解绑定加载网络图片或本地图片静态方法 五、完整代码示例 1、build.gradle 构建脚本 2、AndroidManifest.xml 清单文件 3、DataBinding 布局文件 4、BindingAdapter 注解类 5、MainActivity 组件 6、执行结果

2023-04-18

DataBinding 架构组件 ③

【Jetpack】DataBinding 架构组件 ③ ( 使用 include 导入二级界面布局 | 二级页面绑定数据模型 ) https://hanshuliang.blog.csdn.net/article/details/129899735 一、使用 include 导入二级界面布局 二、二级页面绑定数据模型 1、将二级界面布局转为 DataBinding 布局 2、在主布局中为二级界面布局传递数据模型 三、核心代码示例 1、主布局 2、子布局 3、Java 代码 4、执行结果

2023-04-04

DataBinding 架构组件 ② - DataBinding 布局中使用 import 标签导入 Java、Kotlin 类

【Jetpack】DataBinding 架构组件 ② ( 字符串拼接函数 | 绑定点击事件函数 | DataBinding 布局中使用 import 标签导入 Java、Kotlin 类 ) https://hanshuliang.blog.csdn.net/article/details/129773150 一、字符串拼接函数 二、绑定点击事件函数 三、DataBinding 布局中使用 import 标签导入 Java、Kotlin 类 1、DataBinding 布局中使用 import 标签导入 Java 类 2、DataBinding 布局中使用 import 标签导入 Kotlin 类 四、完整代码示例 1、数据类 2、导入的 Java 类 3、导入的 Kotlin 类 4、DataBinding 布局文件 5、Activity 组件类

2023-03-26

DataBinding 架构组件

【Jetpack】DataBinding 架构组件 ( 数据绑定技术简介 | Android 中的 DataBinding 数据绑定 | 启动数据绑定 | 定义数据类 | 布局文件转换 ) https://hanshuliang.blog.csdn.net/article/details/129762717 博客源码快照 一、数据绑定技术简介 二、Android 中的 DataBinding 数据绑定技术 三、Android 中的 DataBinding 代码示例 1、build.gradle 构建脚本 - 启动数据绑定 2、定义数据类 3、布局文件转换 4、Activity 组件设置数据绑定布局和数据 5、显示效果 ———————————————— 版权声明:本文为CSDN博主「韩曙亮」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/shulianghan/article/details/129762717

2023-03-25

JetpackLiveData 架构组件

【Jetpack】LiveData 架构组件 ( LiveData 简介 | LiveData 使用方法 | ViewModel + LiveData 示例 ) https://hanshuliang.blog.csdn.net/article/details/129411132 博客源码示例 一、LiveData 简介 二、LiveData 使用方法 三、ViewModel + LiveData 简单示例 1、ViewModel + LiveData 代码 2、Activity 组件代码 3、运行效果展示 四、ViewModel + LiveData + Fragment 通信示例 1、ViewModel + LiveData 代码 2、Activity 组件代码 Activity 代码 布局文件 3、Fragment 代码 第一个 Fragment 代码 第一个 Fragment 布局文件 第二个 Fragment 代码 第二个 Fragment 布局文件 4、运行效果展示

2023-03-12

JetpackViewModel 架构组件 博客源码

【Jetpack】ViewModel 架构组件 ( 视图 View 和 数据模型 Model | ViewModel 作用 | ViewModel 生命周期 | 代码示例 | 使用注意事项 ) https://hanshuliang.blog.csdn.net/article/details/129374914 一、Activity 遇到的问题 二、视图 View 和 数据模型 Model 三、ViewModel 架构组件作用 四、ViewModel 代码示例 1、ViewModel 视图模型 2、Activity 组件 3、UI 布局文件 4、运行效果 五、ViewModel 生命周期 六、ViewModel 使用注意事项 ———————————————— 版权声明:本文为CSDN博主「韩曙亮」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/shulianghan/article/details/129374914

2023-03-07

博客资料 -JetpackLifeCycle 架构组件

【Jetpack】Lifecycle 架构组件 ( 系统组件与普通组件解耦 | Lifecycle 解耦系统组件与普通组件 | 解耦服务组件与普通组件 | 监听应用程序生命周期 ) https://hanshuliang.blog.csdn.net/article/details/129291874 一、系统组件与普通组件解耦 二、Lifecycle 解耦 Activity 系统组件与 UI 组件 1、传统实现方式 ① Activity 系统组件 ② 布局文件 ③ 执行效果 2、LifeCycle 实现方式 ① 自定义 UI 组件 ② Activity 系统组件 ③ 布局组件 ④ 执行效果 三、LifecycleService 解耦 Service 与 UI 组件 1、构建脚本导入依赖 2、Android Studio 中搜索并添加依赖 3、布局文件属性排序 4、代码实现 ① LifecycleService 组件 ② LifecycleObserver 业务逻辑 ③ AndroidManifest.xml 清单文件 ④ Activity 系统组件

2023-03-03

使用 Jedis 操作 Redis 数据库 博客代码示例

【Redis】使用 Jedis 操作 Redis 数据库 ② ( Jedis API 规律 | Redis 命令与 Jedis 函数名称基本一致 | Jedis API 使用示例 ) https://hanshuliang.blog.csdn.net/article/details/129128393 博客代码示例

2023-02-20

Redis 数据库 安装、配置、访问资源

【Redis】Redis 数据库 安装、配置、访问 ( Redis 简介 | 下载 Redis 安装包 | 安装 Redis 数据库 | 命令行访问 Redis | 使用可视化工具访问 Redis ) https://hanshuliang.blog.csdn.net/article/details/128945441 博客资源快照 001_Linux安装包 002_Windows安装包 003_可视化工具_Redis Desktop Manager

2023-02-09

开发环境JRE 裁剪 ② ( 裁剪 bin 目录下的 dll 动态库文件 - 压缩 rt.jar 文件 )

【开发环境】JRE 裁剪 ② ( 裁剪 bin 目录下的 dll 动态库文件 | 压缩 rt.jar 文件 ) https://blog.csdn.net/shulianghan/article/details/128711836 博客资源快照

2023-01-17

开发环境JRE 裁剪 ① ( 裁剪 bin 目录下的 dll 动态库文件 )

【开发环境】JRE 裁剪 ① ( 裁剪 bin 目录下的 dll 动态库文件 ) https://hanshuliang.blog.csdn.net/article/details/128703546 资源快照

2023-01-16

【Android OpenCV】Visual Studio 创建支持 OpenCV 库的 CMake 工程 ③ 源码快照

【Android OpenCV】Visual Studio 创建支持 OpenCV 库的 CMake 工程 ③ ( CMake 工程中配置 OpenCV 库文件 | 拷贝 OpenCV 函数库文件 ) https://hanshuliang.blog.csdn.net/article/details/128516414 源码快照 在 Visual Studio 2019 中打开 ; 需要修改 Windows 平台的 OpenCV 函数库 头文件 及 库文件搜索路径 ;

2023-01-02

空空如也

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

TA关注的人

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