StoneLiu999
码龄14年
关注
提问 私信
  • 博客:384,110
    社区:1
    384,111
    总访问量
  • 111
    原创
  • 1,824,222
    排名
  • 159
    粉丝
  • 0
    铁粉
  • 学习成就

个人简介:音视频开发

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2011-04-07
博客简介:

123456789

查看详细资料
  • 原力等级
    成就
    当前等级
    4
    当前总分
    682
    当月
    5
个人成就
  • 获得228次点赞
  • 内容获得99次评论
  • 获得684次收藏
  • 代码片获得431次分享
创作历程
  • 2篇
    2024年
  • 10篇
    2023年
  • 1篇
    2022年
  • 31篇
    2021年
  • 11篇
    2020年
  • 16篇
    2019年
  • 4篇
    2018年
  • 5篇
    2017年
  • 6篇
    2016年
  • 22篇
    2015年
  • 3篇
    2014年
成就勋章
TA的专栏
  • 前端
    6篇
  • C/C++
    7篇
  • 非技术
    2篇
  • Android
    26篇
  • Linux
    13篇
  • 媒体
    29篇
  • WebRTC
    22篇
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 帖子
  • 收藏
搜TA的内容
搜索 取消

鸿蒙学习笔记

DevEco Studio是华为开发的一款集成开发环境(IDE),用于开发基于华为鸿蒙操作系统(HarmonyOS)的应用程序。它提供了丰富的开发工具和功能,包括代码编辑器、调试器、模拟器、版本控制等,使开发者能够方便地创建、调试和发布应用程序。ArkTS(Ark Type Script)是鸿蒙生态的应用开发语言。它在保持TypeScript(简称TS)基本语法风格的基础上,对TS的动态类型特性施加更严格的约束,引入静态类型。
原创
发布博客 2024.01.05 ·
1139 阅读 ·
8 点赞 ·
2 评论 ·
4 收藏

鸿蒙工程目录结构

熟悉JNI的应该可以看出C接口的导出方式跟JNI类似,env应该是做了一层封装。
原创
发布博客 2024.01.03 ·
891 阅读 ·
11 点赞 ·
0 评论 ·
8 收藏

webrtc ios build signing

报错,这个错误是因为存在多个签名的问题,通过错误信息知道其中有一个是无效的(被吊销),移除之后重新执行构建命令就好了。
原创
发布博客 2023.10.25 ·
726 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

数据库Database

数据库(Database)是用于存储和管理数据的系统。它提供了一种结构化的方式来组织、存储、检索和更新数据,以满足不同应用程序的需求。数据库可以分为两类:关系型数据库和非关系型数据库。关系型数据库(Relational Database):关系型数据库使用表格(表)来组织数据,表由行和列组成,每个表都有一个唯一的标识符(主键),用于区分不同的记录。关系型数据库使用结构化查询语言(SQL)来操作和查询数据。
原创
发布博客 2023.08.30 ·
345 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

rust基础

rust的主要文档就是官方文档,还有中文的。学习之后从在这里找一些优秀的开源项目学习一下。开发的时候可以从找找有那些适合自己使用的库避免重复造轮子。
原创
发布博客 2023.08.24 ·
1820 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

rust工程

Rust 是一种现代的、系统级的编程语言,它强调并发安全、内存安全和高性能。Rust 的设计目标是提供一种有着良好抽象能力,同时又能够保证代码运行效率和安全性的语言。它将内存安全、并发安全和数据竞争检测等特性作为语言的一部分,通过所有权系统、借用检查器和生命周期等机制来防止常见的编程错误。Cargo 是 Rust 的包管理工具和构建系统。它能够自动管理 Rust 项目的依赖关系,并提供命令行工具来构建、测试和运行项目。
原创
发布博客 2023.08.22 ·
1527 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

ffmpeg

除了内置的过滤器,libavfilter 还提供了接口供开发者自定义过滤器。开发者可以按照自己的需求编写自定义过滤器,实现特定的音视频处理算法。这样可以满足一些特殊需求,并将自定义过滤器与内置过滤器一同组成过滤器链进行处理。
原创
发布博客 2023.08.21 ·
1137 阅读 ·
0 点赞 ·
0 评论 ·
5 收藏

C++简介

C++是一种高级编程语言,它是对C语言的扩展和增强。C++由Bjarne Stroustrup于1980年发明,主要用于系统级编程、游戏开发、嵌入式系统等领域。C++具有许多特性,其中最重要的是面向对象编程(OOP)。面向对象编程使得软件开发更加模块化、可重用和易于理解。C++还支持其他编程范式,如泛型编程、函数式编程等。高效性:C++编译生成的机器码效率高,可以直接与硬件进行交互,可以在性能要求较高的应用中使用。跨平台性。
原创
发布博客 2023.08.20 ·
3864 阅读 ·
2 点赞 ·
1 评论 ·
8 收藏

JavaScript TypeScript

在 package.json 文件的 “scripts” 部分,你可以添加自定义的脚本命令,并通过。
原创
发布博客 2023.08.17 ·
263 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

React && React Native

通过比较虚拟 DOM 的变化,React 可以确定要更新的最小元素集,并将这些变化应用到真实 DOM 上,以减少不必要的 DOM 操作,提高性能。尽管需要一些额外的工作来适配代码,但 React 和 React Native 使用相同的开发模型和语法,因此你可以借鉴 React 中的组件设计和业务逻辑,以更高效地构建移动应用程序。在 React 中,通过使用虚拟 DOM(Virtual DOM),将组件的状态和属性映射到真实 DOM 上,从而实现高效的 UI 渲染和更新。
原创
发布博客 2023.08.16 ·
1316 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Gradle

Gradle Wrapper 是一个用于管理 Gradle 版本的工具,它使用该配置文件来指定要下载和使用的特定 Gradle 版本。总的来说,Groovy是一门功能丰富的编程语言,可以与Java无缝集成,并提供了许多便利的特性和工具,使得开发更加高效和愉快。Gradle Wrapper是一个用于下载和运行特定版本Gradle的脚本,它可以使你的项目保证使用相同的Gradle版本,无论在何处构建。上的文档,查找与你使用的Android Gradle插件版本相对应的Gradle插件版本。
原创
发布博客 2023.08.16 ·
690 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

unsupported flags dt_flags_1=0x8000001

unsupported flags dt_flags_1=0x8000001
原创
发布博客 2023.03.06 ·
1103 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

WebRTC通话的同时播放本地音乐

方案一(模拟一路接收流)把本地音乐当做一路对端过来的流来处理,这个方案的好处是不需要修改WebRTC的代码,调用WebRtcVoiceMediaChannel对象的AddRecvStream方法来添加一路流即可。通过WebRtcVoiceMediaChannel对象的OnPacketReceived方法传递数据数据需要打包为RTP格式方案二(播放混音)把数据结构webrtc::AudioState的webrtc::AudioMixer对象导出来通过webrtc::AudioMixer对象的
原创
发布博客 2022.01.11 ·
3477 阅读 ·
1 点赞 ·
8 评论 ·
1 收藏

WebRTC Win10平台编译下载错误

使用fetch下载Windows平台WebRTC代码的时候遇到了如下错误The system cannot find the file C:\Users\stoneliu\Desktop\depot_tools\python3_bin_reldir.txt.[E2021-12-30T11:28:59.735399+08:00 11572 0 annotate.go:273] goroutine 1:#0 go.chromium.org/luci/vpython/venv/config.go:309 -
原创
发布博客 2021.12.30 ·
3227 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏

WebRTC rtc_base简介

rtc_base属于WebRTC的基础模块,属于最基础的模块,它里面大部分的封装主要解决平台差异(不同的平台间相同的功能系统函数会存在差异以及平台间提供的功能会有差异或者缺失),它封装了各种使用功能以及对第三库进一步封装让其更加好用,它封装了各种通用数据结构与算法。字符处理相关的封装:封装了兼容Win32的wchar_t和char类型的各种字符串处理函数,封装了各种类型的编码转换文件(夹)相关的封装:路径管理Pathname、文件操作File、文件件迭代器DirectoryIterator、文件系统操
原创
发布博客 2021.12.22 ·
1284 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

WebRTC hostname解析

ResolveHostname是对getaddrinfo的封装,hints.ai_flags = AI_ADDRCONFIG表示当系统支持IPv4时返回IPv4地址,支持IPv6时返回IPv6地址,如果同时支持则同时返回IPv4和IPv6地址。如果family等于AF_UNSPEC时返回支持的所有地址,如果指定了特定的类型则只返回特定类型的地址再调用IPFromAddrInfo把struct addrinfo转换为IPAddress(WebRTC封装的一个IP地址类,比较使用)类型bool IPFr.
原创
发布博客 2021.12.06 ·
2559 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C++通用智能指针的实现

shared_ptr通过__shared_weak_count指针来管理引用计数。__shared_weak_count是__shared_count(实现共享指针的计数)的子类,在__shared_count的基础上实现了弱引用计数。__shared_ptr_pointer是__shared_weak_cou
原创
发布博客 2021.12.01 ·
1156 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

全日制本科生入户东莞指南

文章目录说明条件资料办理流程说明最近我需要把户口迁入东莞,所以就简单记录一下,也希望能帮到其他人。这里主要是列举了全日制本科学历条件入户,其他条件可以参考东莞市人力资源和社会保障局最新(2020-03-06 09:24)发布的条件准入类人才入户申请指引。条件根据东莞市人力资源和社会保障局最新(2020-03-06 09:24)发布的条件准入类人才入户申请指引知道,全日制本科生入户需要满足三个条件。在本市行政区域内就业、经商的非本市户籍人员无参加国家禁止的组织及其活动,无刑事犯罪记录具备全日制
原创
发布博客 2021.11.23 ·
868 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

WebRTC获取本机默认网卡的IP地址

当我们创建一个socket并且不绑定一个特定网络设备的时候(bind),我们通过getsockname接口总是会返回一个INADDR_ANY地址当我们不指定一个网络设备的时,我们要send时系统会给我们指定一个默认的设备如何获取系统的默认设备的地址呢?通过connect一个DNS地址再通过getsockname获取就可以了,以下是WebRTC的实现,P2P就是这样拿到本机地址的。// These addresses are used as the targets to find out the d.
原创
发布博客 2021.11.19 ·
3554 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

clang简介

文章目录clang编译器clang选项阶段选择选项语言选择和模式选项目标选择选项代码生成选项-O0, -O1, -O2, -O3, -Ofast, -Os, -Oz, -Og, -O, -O4-g, -gline-tables-only, -gmodules-fstandalone-debug -fno-standalone-debug-flto, -flto=full, -flto=thin, -emit-llvm驱动程序选项诊断选项预处理器选项环境变量clang编译器此文档基于clang的版本是:
原创
发布博客 2021.10.29 ·
6833 阅读 ·
2 点赞 ·
0 评论 ·
41 收藏
加载更多