一、音频相关知识
在这一章中,我们要做的事是播放音频,首先呈上本章程序的主要流程图
SDL也有播放音频的方法,SDL_OpenAudio()函数就是用来打开音频设备的。这个函数需要一个SDL_AudioSpec结构体作为参数,该结构包含了音频播放的参数信息。
在正式开始处理工作前,先来了解下计算机是怎么处理音频的。数字音频是由一长串的样本(samples)流组成的。每个sample表示声音波形中的一个值。音频按照特定的采样率(sample rate)进行录制,采样率表示每秒采样的次数,它也决定了音频流播放的速度。22050和44100的采样率是电台和CD常用的采样率。大多音频有多个音频通道用于表示立体声或者环绕。例如,如果采样是立体声,那么每次的采样数就为2个。每次我们从视频文件中读数据的时候,是没法决定读取到多少个样本的,但是ffmpeg不会给我们部分的样本——这意味着它将不会把立体声分割开来。
SDL播放音频流程是这样的:先设置音频的选项,如采样率(在SDL的结构体中叫做“freq”,即frequency),通道数和其它的参数,然后给它设置一个回调函数和一些用户数据&#x