参考链接: pcm函数接口:https://www.alsa-project.org/alsa-doc/alsa-lib/group___p_c_m.html
接口案例:https://www.alsa-project.org/alsa-doc/alsa-lib/_2test_2pcm_8c-example.html
https://cpp.hotexamples.com/zh/examples/-/PCM/-/cpp-pcm-class-examples.html
https://cpp.hotexamples.com/zh/search
Linux下音频开发:读取声卡PCM将数据保存到文件中(alsa-lib库)
C linux pcm转aac转mp4合成视频同步
g pcm2aacts2mp4.cpp -o pcm2aacaaaaaa -L/usr/local/lib -lfaac -I/usr/local/include -I/monchickey/ffmpeg/include -L/monchickey/ffmpeg/lib -lavdevice -lavfilter -lavformat -lavcodec -lswresample -lswscale -lavutil C 播放音频流(PCM裸流)
linux - 音频子系统pcm设备
使用FFMpeg将音频PCM数据生成WAV和MP3文件
基于C/C 的PCM简单实现编码和解码
Linux音频驱动三:pcm接口调用过程
FFMPEG重采样PCM数据
播放录取的pcm文件:
/* 采集音频pcm数据并直接保存pcm数据 音频参数: 声道数: 2 采样位数: 16bit、LE格式 采样频率: 44100Hz*/#include <stdio.h>#include <stdlib.h>#include <alsa/asoundlib.h>#include <signal.h>FILE *pcm_data_file=NULL;int run_flag=0;void exit_sighandler(int sig){ run_flag=1;}int main(int argc,char *argv[]){ int i; int err; char *buffer; int buffer_frames = 128; unsigned int rate = 44100;常用的采样频率: 44100Hz 、16000HZ、8000HZ、48000HZ、22050HZ snd_pcm_t *capture_handle;// 指向PCM设备的句柄 snd_pcm_hw_params_t *hw_params; ///该结构包含硬件信息,可用于指定PCM流的配置 /*注册信号捕获退出接口*/ signal(2,exit_sighandler); /*PCM采样格式在pcm.h文件中有定义*/ snd_pcm_format_t format=SND_PCM_FORMAT_S16_LE; / 采样位数:16bit、LE格式 /*打开音频采集卡硬件,判断硬件是否成功打开。如果打开失败,打印错误提示*/ if ((err = snd_pcm_open (&capture_handle, argv[1],SND_PCM_STREAM_CAPTURE,0))<0) { printf("无法打开音频设备: %s (%s)\n", argv[1],snd_strerror (err)); exit(1); } printf(