接上篇 SDL 播放 PCM 音频文件,已经实现了 推
的模式去播放,接下来看看 拉
的模式如何实现。
接上篇 SDL 播放 PCM 音频文件,已经实现了 推
的模式去播放,接下来看看 拉
的模式如何实现。
在前面的文章中已经能够利用 SDL 去播放 YUV 视频文件了,接下来要通过 SDL 去播放 PCM 音频文件。
SDL 播放音频文件有两种方法,可以理解成 推(push)
和拉(pull)
两种模式。
推
就是我们主动向设备缓冲区填充 Buffer ,而 拉
就是由设备拉取 Buffer 填充到缓冲区。
在一些开发模型中,如果数据传递能够抽象成流
的形式,那么肯定就会有推
和拉
两种模式。
本篇文章主要是讲解 SDL 以推的形式播放音频文件。
[阅读全文]在前面的文章中,我们已经能够加载 YUV 帧并显示了,那是把一张图片转换成 YUV 帧得到的素材。
如果是一个 YUV 视频文件的话,那就是很多 YUV 帧连续在一起,既然能展示一帧,那肯定可以连续展示多帧。
接下来就要这样的操作。
[阅读全文]在前面的文章中已经完成了图片的加载和显示,接下来要做的就是加载 YUV 文件并显示。
[阅读全文]在前面的文章中已经介绍完 SDL 显示窗口、消息循环和事件响应这些基础内容,有了这些基础就可以进行功能性开发了。
本篇的主要内容是利用 SDL 加载并显示一张图片,然后再去进行更多的音视频操作。
[阅读全文]在前面的文章中已经创建了一个 SDL 窗口并且显示指定的颜色。
为了让窗口显示出来,在程序中写了一个死循环,这几行代码就是 SDL 消息循环和事件响应的核心缩影了。
SDL_Event windowEvent;
while (true){
if (SDL_PollEvent(&windowEvent)){
if (SDL_QUIT == windowEvent.type){
break;
}
}
}
这是音视频基础学习系列的第一篇文章,主要讲解 SDL 是什么以及为什么要用到它,看似和音视频没啥卵关系,其实必不可少。
[阅读全文]