声网 SDK 接入以及音视频通话应用开发指南

2020-12-04
阅读 10 分钟
4.1k
1. 简介在如今的移动互联网时代,音视频相关应用已经深入到我们日常生活的方方面面。而在它背后的音视频技术也是非常成熟了,短视频编辑、带货直播、视频语音通话等应用形式无不体现着音视频技术给我们生活带来的便利。而这次就去实际体验一下,接入声网的音频 SDK ,并打造一个音视频通话应用。2. 账户注册与项目创建首...

【音视频连载-011】第二季 FFmpeg 一层一层获取文件信息

2020-05-11
阅读 3 分钟
1.9k
本篇文章主要是讲解如何通过 FFmpeg 代码来获取文件信息。 首先准备一个文件,用命令行来查看它的基本信息。 文件地址如下: [链接] 这个文件很有意思,它的内容是一个时钟,每隔一秒,秒针都会跳动,同时还会发出滴答的声音,很方便后续做音视频同步处理。 执行命令如下: ffmpeg -i your_file_path 得到的结果如下图:...

推荐几个堪称教科书级别的 Android 音视频入门项目

2020-05-06
阅读 2 分钟
6.5k
在 直播 中有提到几个不错的开源项目,这里再重点推荐一下: 目前,市面上关于音视频学习的相关书籍并不多,而且即使看了书籍学了理论,最终还是要回归到代码上来。 毕竟 IT 行业实践性要求高,强调动手能力,音视频这方面就更得多操作和探索了。 推荐下面几个项目会各有侧重,分别涵盖了 Android 音视频录制 API 、Open...

【音视频连载-010】第二季 FFmpeg 日志打印

2020-04-27
阅读 3 分钟
1.6k
音视频学习入门技术文章连载: 技术开发故事会连载 【音视频连载-001】基础学习篇-SDL 介绍以及工程配置 【音视频连载-002】基础学习篇-SDL 创建窗口并显示颜色 【音视频连载-003】基础学习篇-SDL 消息循环和事件响应 【音视频连载-004】基础学习篇-SDL 加载图片并显示 【音视频连载-005】基础学习篇-SDL 加载 YUV 文件...

【音视频连载-008】基础学习篇-SDL 播放 PCM 音频文件(下)

2020-03-23
阅读 3 分钟
1.8k
音视频学习入门技术文章连载: 技术开发故事会连载 【音视频连载-001】基础学习篇-SDL 介绍以及工程配置 【音视频连载-002】基础学习篇-SDL 创建窗口并显示颜色 【音视频连载-003】基础学习篇-SDL 消息循环和事件响应 【音视频连载-004】基础学习篇-SDL 加载图片并显示 【音视频连载-005】基础学习篇-SDL 加载 YUV 文件...

【音视频连载-007】基础学习篇-SDL 播放 PCM 音频文件(上)

2020-03-16
阅读 4 分钟
1.8k
音视频学习入门技术文章连载: 技术开发故事会连载 【音视频连载-001】基础学习篇-SDL 介绍以及工程配置 【音视频连载-002】基础学习篇-SDL 创建窗口并显示颜色 【音视频连载-003】基础学习篇-SDL 消息循环和事件响应 【音视频连载-004】基础学习篇-SDL 加载图片并显示 【音视频连载-005】基础学习篇-SDL 加载 YUV 文件...

【音视频连载-004】基础学习篇-SDL 加载图片并显示

2020-03-09
阅读 3 分钟
1.5k
音视频学习入门技术文章连载: 技术开发故事会连载 【音视频连载-001】基础学习篇-SDL 介绍以及工程配置 【音视频连载-002】基础学习篇-SDL 创建窗口并显示颜色 【音视频连载-003】基础学习篇-SDL 消息循环和事件响应 在前面的文章中已经介绍完 SDL 显示窗口、消息循环和事件响应这些基础内容,有了这些基础就可以进行功...

【音视频连载-002】基础学习篇-SDL 创建窗口并显示颜色

2020-03-03
阅读 3 分钟
1.1k
音视频技术文章连载: 技术开发故事会连载 【音视频连载-001】基础学习篇-SDL 介绍以及工程配置 在前面的文章中我们已经完成了 SDL 的工程配置,接下来就是 SDL 相关功能的开发。 本篇文章主要是创建一个应用程序窗口并显示。 创建 SDL 窗口 通过 SDL 中的 SDL_CreateWindow 函数就能够创建了, {代码...} 其中,title ...

【音视频连载-001】基础学习篇- SDL 介绍以及工程配置

2020-02-27
阅读 3 分钟
2.2k
SDL 是 “Simple DirectMedia Layer” 的缩写,它是一个跨平台的多媒体库,可以在 Mac、Windows、Linux 以及更多的系统上运行。

LearnOpenGL 源码在 MAC 上的编译与调试

2020-01-06
阅读 2 分钟
1.8k
学习 OpenGL ,相信肯定有不少人看过这个网站: [链接] 这是它的英文原版网站,后来又有了不同语言的翻译版本,对应中文就是: [链接] 这两个网站对于学习 OpenGL 帮助非常大,既可以用作入门的教材,也可以作为工具书,后续进行查漏补缺。 并且它的内容很全面,除了 OpenGL 基础知识、坐标系统、纹理、Shader、模型加载...

OpenGL 实现视频编辑中的转场效果

2019-10-23
阅读 4 分钟
4.8k
转场介绍 转场效果是什么? 转场效果,简单来说就是两段视频之间的衔接过渡效果。 现在拍摄 vlog 的玩家越来越多,要是视频没有一两个炫酷的转场效果,都不好意思拿出来炫酷了。 那么如何在视频编辑软件中实现转场效果呢? 这里提供使用 OpenGL 实现视频转场的一个小示例,我们可以通过自定义 GLSL 来实现不同的转场效果...

OpenGL 实践之贝塞尔曲线绘制

2019-08-21
阅读 6 分钟
3.8k
说到贝塞尔曲线,大家肯定都不陌生,网上有很多关于介绍和理解贝塞尔曲线的优秀文章和动态图。 以下两个是比较经典的动图了。 二阶贝塞尔曲线: 三阶贝塞尔曲线: 由于在工作中经常要和贝塞尔曲线打交道,所以简单说一下自己的理解: 现在假设我们要在坐标系中绘制一条直线,直线的方程很简单,就是 y=x ,很容易得到下...

图像库 libpng 编译与实践

2019-07-15
阅读 6 分钟
3.5k
在之前的文章中介绍了 stb_image 图像库,还顺带提到了 libpng 和 libjpeg ,这篇文章就是介绍如何在 Android 平台上用 CMake 编译 libpng 动态库以及 libpng 使用实践。

Google Jetpack 新组件 CameraX 介绍与实践

2019-05-23
阅读 7 分钟
2.4k
顾名思义:CameraX 就是用来进行 Camera 开发的官方库了,而且后续会有 Google 进行维护和升级。这对于广大 Camera 开发工程师和即将成为 Camera 的程序员来说,真是个好消息~~~

Android NDK 开发 —— 从 Assets 文件夹加载图片并上传纹理

2019-05-15
阅读 2 分钟
4.1k
在 OpenGL 开发中,我们要渲染一张图片,通常先是得到一张图片对应的 Bitmap ,然后将该 Bitmap 作为纹理上传到 OpenGL 中。在 Android 中有封装好的 GLUtils 类的 texImage2D 方法供我们调用。

简单易用的图像解码库介绍 —— stb_image

2019-05-13
阅读 4 分钟
5.9k
png 支持透明度,无损压缩的图片格式,能在保证不失真的情况下尽可能压缩图像文件的大小,因此图像质量高,在一些贴纸应用中也大部分用的是 png 图片。

Android JNI 中的引用管理

2018-07-10
阅读 7 分钟
5.2k
在 Native 代码中有时候会接收 Java 传入的引用类型参数,有时候也会通过 NewObject 方法来创建一个 Java 的引用类型变量。

Android JNI 调用时缓存字段和方法 ID

2018-07-09
阅读 3 分钟
2.8k
事实上,通过 FindClass 、GetFieldID、GetMethodID 去找到对应的信息是很耗时的,如果方法被频繁调用,那么肯定不能每次都去查找对应的信息,有必要将它们缓存起来,在下一次调用时,直接使用缓存内容就好了。

Android 通过 JNI 调用 Java 类的构造方法和父类的方法

2018-07-08
阅读 5 分钟
4.1k
对于构造方法,它的方法 id 还是通过 GetMethodID 方法来获得,但是构造方法对应的名称为 <init>,返回值类型是 void 类型的。

Android JNI 数组操作

2018-07-06
阅读 6 分钟
2.8k
在 Android JNI 基础知识篇提到了 Java 数组类型对应的 JNI 数组类型。比如,Java int 数组对应了 jintArray,boolean 数组对应了 jbooleanArray。

OpenGL 学习系列---观察矩阵

2018-07-03
阅读 5 分钟
2.7k
在使用 OpenGL 绘制时,我们最多绘制的是一些简单的图形,比如三角形、圆形、立方体等,因为这些图形的顶点数量不多,还是可以手动的写出那些顶点的,可要是绘制一些复杂图形该怎么办呢?

OpenGL 的 glDrawElements 绘制方法

2018-07-02
阅读 3 分钟
12k
假设要绘制一个立方体,以 GL_TRIANGLES 的类型进行绘制,那么六个面,每个面由两个三角形组成,就得向渲染管线传入 36 个顶点,36 个顶点按照顺序进行绘制,而实际上,一个矩形也就才 8 个顶点而已。

Kotlin 中的 run、let、with、apply、also、takeIf、takeUnless 语法糖使用和原理分析

2018-06-30
阅读 5 分钟
4.7k
在 Kotlin 有一些可以简化代码的语法糖,比如 run、let、with、apply、also、takeIf、takeUnless 等。