0%

前面使用FFmpeg完成了视频和音频的播放,但是项目跑起来后发现视频和画面并不一致,也就是说我们从队列中取出数据进行播放时是没有对画面和音频时间进行同步处理的,所以出现了问题。同时播放完成以及错误或者退出时要进行相关的资源释放工作。

阅读全文 »

二叉树题目的递归解法可以分两类思路,第一类是遍历一遍二叉树得出答案,第二类是通过分解问题计算出答案,这两类思路分别对应着回溯算法核心框架和动态规划核心框架。

阅读全文 »

在之前篇中的解封装的最后,把音视频的压缩数据分别放入了视频和音频的队列中,上篇中展示了视频的播放流程,本篇展示音频的播放过程。

音频的播放主要是采用OpenSLES进行的。OpenSL ES 是无授权费、跨平台、针对嵌入式系统精心优化的硬件音频加速API。该库都允许使用C或C ++来实现高性能,低延迟的音频操作。 Android的OpenSL ES库同样位于NDK的platforms文件夹内。

阅读全文 »

在前一篇中的解封装的最后,把音视频的压缩数据分别放入了视频和音频的队列中,接下来就是在视频播放部分从队列中取出压缩数据进行解码播放。

阅读全文 »

对RGB,并不陌生,从初中开始接触的色光的三原色,告诉我们我们可以看到的光可以由这三种颜色按一定的比例去混合得到;后来在HTML以及Android开发中设置元素/控件的颜色时,可以通过一串数字,得到某个特定的颜色。这就是RGB的应用。

阅读全文 »

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL 或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。

阅读全文 »

LRU(Least Recently Used,最近最少使用)算法是一种淘汰策略,简单来讲实现的是如下工作:将一些元素放在一个容量固定的容器中进行存取,由于容器的容量有限,该容器就要保证那些最近才被用到的元素始终在容器内,而将已经很久没有用的元素剔除,实现容器内元素的动态维护。这种算法是一种缓存维护策略,因为缓存空间有限,让缓存中存储的都是最近才被用到的元素可以实现系统缓存的高效运作。

阅读全文 »

CMake是一个跨平台的构建工具,可以用简单的语句来描述所有平台的安装(编译过程)。 能够输出各种各样的makefile或者project文件。CMake并不直接构建出最终的软件, 而是产生其他工具的脚本(如makefile),然后再依据这个工具的构建方式使用。

阅读全文 »