说明
在Linux平台, 设计到音频的开发,必然离不开liasound,无论是混音器的参数设置,还是录音、播放音频等,liasound都提供了支持。这篇文章介绍的时播放音频部分,即 PCM 部分
预备知识
音频相关知识
- 采样率(每秒采样次数)\帧率
- 字节率(每秒采样字节数)
- 通道数(1: 单通道, 2: 立体声)
- 单位采样数据位数(8位无符号或16位有符号)
知识点说明
采样率
, 表示每一秒对声音的波形模拟量取样的次数,频率越高,音质越好字节率
, 与采样率、通道数和单位采样字节数综合相关, 实际上等于这三个数据的乘积除以8 (8位代表1字节)通道数
, 就是我们平常听音乐时使用的耳机,如果是单通道数据, 我们会听到两个耳机内声音时一模一样, 如果是双通道,一些音质比较高的音乐或者影视甚至游戏,在两个耳机里面听到的声音会不一样,能给人一种有距离的感觉,所以叫立体声, 一些音质更高的播放设备和音乐文件中也会包含双通道以外的音频信息, 是播放出来的音频效果更逼真单位采样数据位数
, 指的是每次对声音波形的模拟量采样记录时, 用来记录数据的数据位数, 数据位数越高,数据表示的模拟量越精细, 音质越好
PCM (脉冲编码调制)
自行百度或者谷歌去了解
ALSA编程接入
头文件
#include <alsa/asoundlib.h>
需要用到的几个结构体
snd_pcm_t
snd_pcm_hw_params_t
snd_pcm_sw_params_t
如何使用
1. 首先使用snd_pcm_t
来打开音频设备,用来播放音频或者录音
int